﻿2026-06-15T10:02:42.7063496Z ##[group]Run ./traceable-reqs check --json
2026-06-15T10:02:42.7063815Z [36;1m./traceable-reqs check --json[0m
2026-06-15T10:02:42.7076539Z shell: /usr/bin/bash -e {0}
2026-06-15T10:02:42.7076788Z ##[endgroup]
2026-06-15T10:02:42.7346017Z {
2026-06-15T10:02:42.7346431Z   "schemaVersion": 1,
2026-06-15T10:02:42.7346690Z   "summary": {
2026-06-15T10:02:42.7346935Z     "requirementCount": 208,
2026-06-15T10:02:42.7347358Z     "completeCount": 208,
2026-06-15T10:02:42.7347751Z     "incompleteCount": 0,
2026-06-15T10:02:42.7348113Z     "findingCount": 0
2026-06-15T10:02:42.7348461Z   },
2026-06-15T10:02:42.7348742Z   "requirements": [
2026-06-15T10:02:42.7349161Z     {
2026-06-15T10:02:42.7349462Z       "id": "REQ-API-1",
2026-06-15T10:02:42.7349961Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-15T10:02:42.7350605Z       "requiredStages": [
2026-06-15T10:02:42.7350944Z         "impl",
2026-06-15T10:02:42.7351244Z         "unit",
2026-06-15T10:02:42.7351528Z         "int"
2026-06-15T10:02:42.7351874Z       ],
2026-06-15T10:02:42.7352179Z       "stages": {
2026-06-15T10:02:42.7352475Z         "doc": {
2026-06-15T10:02:42.7352799Z           "complete": false,
2026-06-15T10:02:42.7353157Z           "evidence": []
2026-06-15T10:02:42.7353482Z         },
2026-06-15T10:02:42.7353792Z         "impl": {
2026-06-15T10:02:42.7354107Z           "complete": true,
2026-06-15T10:02:42.7354448Z           "evidence": [
2026-06-15T10:02:42.7354770Z             {
2026-06-15T10:02:42.7355124Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T10:02:42.7355581Z               "line": 15
2026-06-15T10:02:42.7355915Z             }
2026-06-15T10:02:42.7356181Z           ]
2026-06-15T10:02:42.7356426Z         },
2026-06-15T10:02:42.7356674Z         "int": {
2026-06-15T10:02:42.7356948Z           "complete": true,
2026-06-15T10:02:42.7357255Z           "evidence": [
2026-06-15T10:02:42.7357533Z             {
2026-06-15T10:02:42.7357828Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T10:02:42.7358214Z               "line": 13
2026-06-15T10:02:42.7359492Z             }
2026-06-15T10:02:42.7359749Z           ]
2026-06-15T10:02:42.7359988Z         },
2026-06-15T10:02:42.7360226Z         "unit": {
2026-06-15T10:02:42.7360502Z           "complete": true,
2026-06-15T10:02:42.7360817Z           "evidence": [
2026-06-15T10:02:42.7361092Z             {
2026-06-15T10:02:42.7361375Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T10:02:42.7361736Z               "line": 480
2026-06-15T10:02:42.7362017Z             },
2026-06-15T10:02:42.7362269Z             {
2026-06-15T10:02:42.7362554Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T10:02:42.7362931Z               "line": 518
2026-06-15T10:02:42.7363217Z             },
2026-06-15T10:02:42.7363465Z             {
2026-06-15T10:02:42.7363732Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T10:02:42.7364105Z               "line": 586
2026-06-15T10:02:42.7364390Z             }
2026-06-15T10:02:42.7364647Z           ]
2026-06-15T10:02:42.7364880Z         }
2026-06-15T10:02:42.7365127Z       }
2026-06-15T10:02:42.7365378Z     },
2026-06-15T10:02:42.7365621Z     {
2026-06-15T10:02:42.7365888Z       "id": "REQ-API-2",
2026-06-15T10:02:42.7366365Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-15T10:02:42.7366919Z       "requiredStages": [
2026-06-15T10:02:42.7367229Z         "impl",
2026-06-15T10:02:42.7367475Z         "unit",
2026-06-15T10:02:42.7367721Z         "int"
2026-06-15T10:02:42.7367964Z       ],
2026-06-15T10:02:42.7368226Z       "stages": {
2026-06-15T10:02:42.7368478Z         "doc": {
2026-06-15T10:02:42.7368745Z           "complete": false,
2026-06-15T10:02:42.7369141Z           "evidence": []
2026-06-15T10:02:42.7369432Z         },
2026-06-15T10:02:42.7369661Z         "impl": {
2026-06-15T10:02:42.7370215Z           "complete": true,
2026-06-15T10:02:42.7370529Z           "evidence": [
2026-06-15T10:02:42.7370796Z             {
2026-06-15T10:02:42.7371328Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T10:02:42.7371696Z               "line": 17
2026-06-15T10:02:42.7371963Z             },
2026-06-15T10:02:42.7372206Z             {
2026-06-15T10:02:42.7372489Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T10:02:42.7372852Z               "line": 20
2026-06-15T10:02:42.7373124Z             },
2026-06-15T10:02:42.7373362Z             {
2026-06-15T10:02:42.7373648Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T10:02:42.7374021Z               "line": 142
2026-06-15T10:02:42.7374287Z             },
2026-06-15T10:02:42.7374534Z             {
2026-06-15T10:02:42.7374821Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.7375183Z               "line": 24
2026-06-15T10:02:42.7375468Z             },
2026-06-15T10:02:42.7375724Z             {
2026-06-15T10:02:42.7376020Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.7376386Z               "line": 41
2026-06-15T10:02:42.7376658Z             },
2026-06-15T10:02:42.7376902Z             {
2026-06-15T10:02:42.7377203Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.7377556Z               "line": 209
2026-06-15T10:02:42.7377842Z             },
2026-06-15T10:02:42.7378087Z             {
2026-06-15T10:02:42.7378366Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.7378733Z               "line": 251
2026-06-15T10:02:42.7379082Z             },
2026-06-15T10:02:42.7379315Z             {
2026-06-15T10:02:42.7379606Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.7379964Z               "line": 330
2026-06-15T10:02:42.7380235Z             },
2026-06-15T10:02:42.7380484Z             {
2026-06-15T10:02:42.7380766Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T10:02:42.7381142Z               "line": 17
2026-06-15T10:02:42.7381413Z             },
2026-06-15T10:02:42.7381656Z             {
2026-06-15T10:02:42.7381942Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T10:02:42.7382324Z               "line": 30
2026-06-15T10:02:42.7382586Z             },
2026-06-15T10:02:42.7382789Z             {
2026-06-15T10:02:42.7383039Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T10:02:42.7383318Z               "line": 63
2026-06-15T10:02:42.7383511Z             },
2026-06-15T10:02:42.7383679Z             {
2026-06-15T10:02:42.7383888Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T10:02:42.7384121Z               "line": 77
2026-06-15T10:02:42.7384308Z             }
2026-06-15T10:02:42.7384470Z           ]
2026-06-15T10:02:42.7384637Z         },
2026-06-15T10:02:42.7384794Z         "int": {
2026-06-15T10:02:42.7384980Z           "complete": true,
2026-06-15T10:02:42.7385182Z           "evidence": [
2026-06-15T10:02:42.7385371Z             {
2026-06-15T10:02:42.7385578Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T10:02:42.7385811Z               "line": 14
2026-06-15T10:02:42.7386014Z             },
2026-06-15T10:02:42.7386171Z             {
2026-06-15T10:02:42.7386369Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T10:02:42.7386613Z               "line": 187
2026-06-15T10:02:42.7386804Z             }
2026-06-15T10:02:42.7386974Z           ]
2026-06-15T10:02:42.7387128Z         },
2026-06-15T10:02:42.7387294Z         "unit": {
2026-06-15T10:02:42.7387481Z           "complete": true,
2026-06-15T10:02:42.7387685Z           "evidence": [
2026-06-15T10:02:42.7387866Z             {
2026-06-15T10:02:42.7388068Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T10:02:42.7388315Z               "line": 82
2026-06-15T10:02:42.7388491Z             },
2026-06-15T10:02:42.7388656Z             {
2026-06-15T10:02:42.7388846Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T10:02:42.7389385Z               "line": 279
2026-06-15T10:02:42.7389575Z             },
2026-06-15T10:02:42.7389732Z             {
2026-06-15T10:02:42.7390061Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.7390310Z               "line": 585
2026-06-15T10:02:42.7390491Z             },
2026-06-15T10:02:42.7390654Z             {
2026-06-15T10:02:42.7390848Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.7391086Z               "line": 596
2026-06-15T10:02:42.7391274Z             },
2026-06-15T10:02:42.7391439Z             {
2026-06-15T10:02:42.7391624Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.7391867Z               "line": 749
2026-06-15T10:02:42.7392054Z             },
2026-06-15T10:02:42.7392216Z             {
2026-06-15T10:02:42.7392397Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.7392636Z               "line": 795
2026-06-15T10:02:42.7392821Z             },
2026-06-15T10:02:42.7393002Z             {
2026-06-15T10:02:42.7393199Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T10:02:42.7393441Z               "line": 143
2026-06-15T10:02:42.7393636Z             },
2026-06-15T10:02:42.7393802Z             {
2026-06-15T10:02:42.7393986Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T10:02:42.7394211Z               "line": 187
2026-06-15T10:02:42.7394386Z             }
2026-06-15T10:02:42.7394549Z           ]
2026-06-15T10:02:42.7394715Z         }
2026-06-15T10:02:42.7394878Z       }
2026-06-15T10:02:42.7395034Z     },
2026-06-15T10:02:42.7395188Z     {
2026-06-15T10:02:42.7395354Z       "id": "REQ-API-3",
2026-06-15T10:02:42.7395607Z       "title": "commune/signoff are file-drops, not commands",
2026-06-15T10:02:42.7395897Z       "requiredStages": [
2026-06-15T10:02:42.7396085Z         "impl",
2026-06-15T10:02:42.7396260Z         "unit",
2026-06-15T10:02:42.7396438Z         "int"
2026-06-15T10:02:42.7396608Z       ],
2026-06-15T10:02:42.7396779Z       "stages": {
2026-06-15T10:02:42.7396953Z         "doc": {
2026-06-15T10:02:42.7397130Z           "complete": false,
2026-06-15T10:02:42.7397325Z           "evidence": []
2026-06-15T10:02:42.7397520Z         },
2026-06-15T10:02:42.7397684Z         "impl": {
2026-06-15T10:02:42.7397873Z           "complete": true,
2026-06-15T10:02:42.7398060Z           "evidence": [
2026-06-15T10:02:42.7398356Z             {
2026-06-15T10:02:42.7398671Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T10:02:42.7399047Z               "line": 27
2026-06-15T10:02:42.7399524Z             },
2026-06-15T10:02:42.7399838Z             {
2026-06-15T10:02:42.7400168Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.7400536Z               "line": 442
2026-06-15T10:02:42.7400993Z             }
2026-06-15T10:02:42.7401427Z           ]
2026-06-15T10:02:42.7401994Z         },
2026-06-15T10:02:42.7402389Z         "int": {
2026-06-15T10:02:42.7402824Z           "complete": true,
2026-06-15T10:02:42.7431663Z           "evidence": [
2026-06-15T10:02:42.7431963Z             {
2026-06-15T10:02:42.7432278Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T10:02:42.7432693Z               "line": 261
2026-06-15T10:02:42.7432973Z             }
2026-06-15T10:02:42.7433214Z           ]
2026-06-15T10:02:42.7433451Z         },
2026-06-15T10:02:42.7433698Z         "unit": {
2026-06-15T10:02:42.7433974Z           "complete": true,
2026-06-15T10:02:42.7434256Z           "evidence": [
2026-06-15T10:02:42.7434528Z             {
2026-06-15T10:02:42.7434814Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T10:02:42.7435186Z               "line": 280
2026-06-15T10:02:42.7435467Z             },
2026-06-15T10:02:42.7435710Z             {
2026-06-15T10:02:42.7436009Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.7436398Z               "line": 824
2026-06-15T10:02:42.7436674Z             }
2026-06-15T10:02:42.7436908Z           ]
2026-06-15T10:02:42.7437405Z         }
2026-06-15T10:02:42.7437637Z       }
2026-06-15T10:02:42.7437876Z     },
2026-06-15T10:02:42.7438110Z     {
2026-06-15T10:02:42.7438349Z       "id": "REQ-ARCH-1",
2026-06-15T10:02:42.7438881Z       "title": "Many small acyclically-layered crates",
2026-06-15T10:02:42.7439361Z       "requiredStages": [
2026-06-15T10:02:42.7439647Z         "impl"
2026-06-15T10:02:42.7439895Z       ],
2026-06-15T10:02:42.7440137Z       "stages": {
2026-06-15T10:02:42.7440400Z         "doc": {
2026-06-15T10:02:42.7440666Z           "complete": false,
2026-06-15T10:02:42.7440967Z           "evidence": []
2026-06-15T10:02:42.7441240Z         },
2026-06-15T10:02:42.7441486Z         "impl": {
2026-06-15T10:02:42.7441759Z           "complete": true,
2026-06-15T10:02:42.7442070Z           "evidence": [
2026-06-15T10:02:42.7442341Z             {
2026-06-15T10:02:42.7442628Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-15T10:02:42.7442985Z               "line": 18
2026-06-15T10:02:42.7443253Z             },
2026-06-15T10:02:42.7443515Z             {
2026-06-15T10:02:42.7443811Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-15T10:02:42.7444163Z               "line": 12
2026-06-15T10:02:42.7444439Z             },
2026-06-15T10:02:42.7444682Z             {
2026-06-15T10:02:42.7444962Z               "path": "crates/spt-store/src/lib.rs",
2026-06-15T10:02:42.7445307Z               "line": 12
2026-06-15T10:02:42.7445578Z             }
2026-06-15T10:02:42.7445817Z           ]
2026-06-15T10:02:42.7446046Z         },
2026-06-15T10:02:42.7446285Z         "int": {
2026-06-15T10:02:42.7446560Z           "complete": false,
2026-06-15T10:02:42.7446862Z           "evidence": []
2026-06-15T10:02:42.7447078Z         },
2026-06-15T10:02:42.7447243Z         "unit": {
2026-06-15T10:02:42.7447416Z           "complete": false,
2026-06-15T10:02:42.7447621Z           "evidence": []
2026-06-15T10:02:42.7447787Z         }
2026-06-15T10:02:42.7447941Z       }
2026-06-15T10:02:42.7448102Z     },
2026-06-15T10:02:42.7448407Z     {
2026-06-15T10:02:42.7448589Z       "id": "REQ-ARCH-2",
2026-06-15T10:02:42.7448862Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-15T10:02:42.7449267Z       "requiredStages": [
2026-06-15T10:02:42.7449464Z         "impl"
2026-06-15T10:02:42.7449658Z       ],
2026-06-15T10:02:42.7449806Z       "stages": {
2026-06-15T10:02:42.7449983Z         "doc": {
2026-06-15T10:02:42.7450150Z           "complete": false,
2026-06-15T10:02:42.7450353Z           "evidence": []
2026-06-15T10:02:42.7450536Z         },
2026-06-15T10:02:42.7450697Z         "impl": {
2026-06-15T10:02:42.7450865Z           "complete": true,
2026-06-15T10:02:42.7451046Z           "evidence": [
2026-06-15T10:02:42.7451222Z             {
2026-06-15T10:02:42.7451414Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-15T10:02:42.7451656Z               "line": 18
2026-06-15T10:02:42.7451838Z             }
2026-06-15T10:02:42.7451993Z           ]
2026-06-15T10:02:42.7452160Z         },
2026-06-15T10:02:42.7452324Z         "int": {
2026-06-15T10:02:42.7452493Z           "complete": false,
2026-06-15T10:02:42.7452687Z           "evidence": []
2026-06-15T10:02:42.7452868Z         },
2026-06-15T10:02:42.7453031Z         "unit": {
2026-06-15T10:02:42.7453207Z           "complete": false,
2026-06-15T10:02:42.7453394Z           "evidence": []
2026-06-15T10:02:42.7453588Z         }
2026-06-15T10:02:42.7453755Z       }
2026-06-15T10:02:42.7453917Z     },
2026-06-15T10:02:42.7454075Z     {
2026-06-15T10:02:42.7454237Z       "id": "REQ-ARCH-3",
2026-06-15T10:02:42.7454571Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-15T10:02:42.7455071Z       "requiredStages": [
2026-06-15T10:02:42.7455261Z         "impl",
2026-06-15T10:02:42.7455428Z         "unit"
2026-06-15T10:02:42.7455596Z       ],
2026-06-15T10:02:42.7455757Z       "stages": {
2026-06-15T10:02:42.7455920Z         "doc": {
2026-06-15T10:02:42.7456100Z           "complete": false,
2026-06-15T10:02:42.7456481Z           "evidence": []
2026-06-15T10:02:42.7456672Z         },
2026-06-15T10:02:42.7456830Z         "impl": {
2026-06-15T10:02:42.7457006Z           "complete": true,
2026-06-15T10:02:42.7457323Z           "evidence": [
2026-06-15T10:02:42.7457504Z             {
2026-06-15T10:02:42.7457708Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T10:02:42.7457957Z               "line": 34
2026-06-15T10:02:42.7458143Z             },
2026-06-15T10:02:42.7458300Z             {
2026-06-15T10:02:42.7458496Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T10:02:42.7458739Z               "line": 41
2026-06-15T10:02:42.7458915Z             }
2026-06-15T10:02:42.7459397Z           ]
2026-06-15T10:02:42.7459626Z         },
2026-06-15T10:02:42.7459822Z         "int": {
2026-06-15T10:02:42.7460044Z           "complete": false,
2026-06-15T10:02:42.7460294Z           "evidence": []
2026-06-15T10:02:42.7460515Z         },
2026-06-15T10:02:42.7460700Z         "unit": {
2026-06-15T10:02:42.7460933Z           "complete": true,
2026-06-15T10:02:42.7461173Z           "evidence": [
2026-06-15T10:02:42.7461392Z             {
2026-06-15T10:02:42.7461634Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T10:02:42.7461949Z               "line": 51
2026-06-15T10:02:42.7462178Z             },
2026-06-15T10:02:42.7462370Z             {
2026-06-15T10:02:42.7462606Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T10:02:42.7462894Z               "line": 71
2026-06-15T10:02:42.7463100Z             },
2026-06-15T10:02:42.7463301Z             {
2026-06-15T10:02:42.7463533Z               "path": "crates/spt-proto/src/version.rs",
2026-06-15T10:02:42.7463819Z               "line": 83
2026-06-15T10:02:42.7464024Z             }
2026-06-15T10:02:42.7464216Z           ]
2026-06-15T10:02:42.7464397Z         }
2026-06-15T10:02:42.7464579Z       }
2026-06-15T10:02:42.7464758Z     },
2026-06-15T10:02:42.7464941Z     {
2026-06-15T10:02:42.7465126Z       "id": "REQ-ARCH-4",
2026-06-15T10:02:42.7465458Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-15T10:02:42.7465831Z       "requiredStages": [
2026-06-15T10:02:42.7466059Z         "impl",
2026-06-15T10:02:42.7466251Z         "unit"
2026-06-15T10:02:42.7466446Z       ],
2026-06-15T10:02:42.7466637Z       "stages": {
2026-06-15T10:02:42.7466847Z         "doc": {
2026-06-15T10:02:42.7467051Z           "complete": false,
2026-06-15T10:02:42.7467289Z           "evidence": []
2026-06-15T10:02:42.7467505Z         },
2026-06-15T10:02:42.7467684Z         "impl": {
2026-06-15T10:02:42.7467864Z           "complete": true,
2026-06-15T10:02:42.7468054Z           "evidence": [
2026-06-15T10:02:42.7468245Z             {
2026-06-15T10:02:42.7468431Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.7468688Z               "line": 157
2026-06-15T10:02:42.7468869Z             },
2026-06-15T10:02:42.7469127Z             {
2026-06-15T10:02:42.7469322Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.7469561Z               "line": 180
2026-06-15T10:02:42.7469743Z             },
2026-06-15T10:02:42.7469904Z             {
2026-06-15T10:02:42.7470100Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.7470334Z               "line": 200
2026-06-15T10:02:42.7470513Z             },
2026-06-15T10:02:42.7470675Z             {
2026-06-15T10:02:42.7470863Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.7471098Z               "line": 215
2026-06-15T10:02:42.7471284Z             },
2026-06-15T10:02:42.7471450Z             {
2026-06-15T10:02:42.7471637Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.7471865Z               "line": 265
2026-06-15T10:02:42.7472056Z             }
2026-06-15T10:02:42.7472219Z           ]
2026-06-15T10:02:42.7472379Z         },
2026-06-15T10:02:42.7472544Z         "int": {
2026-06-15T10:02:42.7472713Z           "complete": false,
2026-06-15T10:02:42.7472911Z           "evidence": []
2026-06-15T10:02:42.7473303Z         },
2026-06-15T10:02:42.7473473Z         "unit": {
2026-06-15T10:02:42.7473655Z           "complete": true,
2026-06-15T10:02:42.7473961Z           "evidence": [
2026-06-15T10:02:42.7474142Z             {
2026-06-15T10:02:42.7474341Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.7474584Z               "line": 326
2026-06-15T10:02:42.7474761Z             },
2026-06-15T10:02:42.7474923Z             {
2026-06-15T10:02:42.7475110Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.7475343Z               "line": 336
2026-06-15T10:02:42.7475533Z             },
2026-06-15T10:02:42.7475686Z             {
2026-06-15T10:02:42.7475876Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.7476110Z               "line": 347
2026-06-15T10:02:42.7476281Z             },
2026-06-15T10:02:42.7476439Z             {
2026-06-15T10:02:42.7476624Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.7476863Z               "line": 358
2026-06-15T10:02:42.7477045Z             },
2026-06-15T10:02:42.7477211Z             {
2026-06-15T10:02:42.7477398Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.7477631Z               "line": 370
2026-06-15T10:02:42.7477816Z             },
2026-06-15T10:02:42.7477974Z             {
2026-06-15T10:02:42.7478164Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.7478392Z               "line": 383
2026-06-15T10:02:42.7478580Z             },
2026-06-15T10:02:42.7478739Z             {
2026-06-15T10:02:42.7478919Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.7479239Z               "line": 394
2026-06-15T10:02:42.7479420Z             },
2026-06-15T10:02:42.7479583Z             {
2026-06-15T10:02:42.7479768Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.7480002Z               "line": 411
2026-06-15T10:02:42.7480183Z             },
2026-06-15T10:02:42.7480345Z             {
2026-06-15T10:02:42.7480532Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.7480760Z               "line": 539
2026-06-15T10:02:42.7480942Z             }
2026-06-15T10:02:42.7481102Z           ]
2026-06-15T10:02:42.7481264Z         }
2026-06-15T10:02:42.7481419Z       }
2026-06-15T10:02:42.7481578Z     },
2026-06-15T10:02:42.7481733Z     {
2026-06-15T10:02:42.7481897Z       "id": "REQ-CLI-1",
2026-06-15T10:02:42.7483040Z       "title": "spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)",
2026-06-15T10:02:42.7484197Z       "requiredStages": [
2026-06-15T10:02:42.7484387Z         "impl",
2026-06-15T10:02:42.7484558Z         "unit"
2026-06-15T10:02:42.7484735Z       ],
2026-06-15T10:02:42.7484901Z       "stages": {
2026-06-15T10:02:42.7485079Z         "doc": {
2026-06-15T10:02:42.7485259Z           "complete": false,
2026-06-15T10:02:42.7485468Z           "evidence": []
2026-06-15T10:02:42.7485651Z         },
2026-06-15T10:02:42.7485816Z         "impl": {
2026-06-15T10:02:42.7485994Z           "complete": true,
2026-06-15T10:02:42.7486193Z           "evidence": [
2026-06-15T10:02:42.7486381Z             {
2026-06-15T10:02:42.7486573Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7486817Z               "line": 225
2026-06-15T10:02:42.7486999Z             },
2026-06-15T10:02:42.7487165Z             {
2026-06-15T10:02:42.7487371Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7487605Z               "line": 984
2026-06-15T10:02:42.7487789Z             },
2026-06-15T10:02:42.7487962Z             {
2026-06-15T10:02:42.7488152Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7488390Z               "line": 1512
2026-06-15T10:02:42.7488705Z             },
2026-06-15T10:02:42.7488871Z             {
2026-06-15T10:02:42.7489135Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7489460Z               "line": 2723
2026-06-15T10:02:42.7489651Z             }
2026-06-15T10:02:42.7489813Z           ]
2026-06-15T10:02:42.7489980Z         },
2026-06-15T10:02:42.7490143Z         "int": {
2026-06-15T10:02:42.7490323Z           "complete": false,
2026-06-15T10:02:42.7490524Z           "evidence": []
2026-06-15T10:02:42.7490718Z         },
2026-06-15T10:02:42.7490881Z         "unit": {
2026-06-15T10:02:42.7491058Z           "complete": true,
2026-06-15T10:02:42.7491258Z           "evidence": [
2026-06-15T10:02:42.7491441Z             {
2026-06-15T10:02:42.7491628Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7491861Z               "line": 6410
2026-06-15T10:02:42.7492056Z             }
2026-06-15T10:02:42.7492218Z           ]
2026-06-15T10:02:42.7492380Z         }
2026-06-15T10:02:42.7492552Z       }
2026-06-15T10:02:42.7492705Z     },
2026-06-15T10:02:42.7492871Z     {
2026-06-15T10:02:42.7493034Z       "id": "REQ-CLI-2",
2026-06-15T10:02:42.7493843Z       "title": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)",
2026-06-15T10:02:42.7494670Z       "requiredStages": [
2026-06-15T10:02:42.7494870Z         "impl",
2026-06-15T10:02:42.7495042Z         "unit"
2026-06-15T10:02:42.7495204Z       ],
2026-06-15T10:02:42.7495366Z       "stages": {
2026-06-15T10:02:42.7495533Z         "doc": {
2026-06-15T10:02:42.7495714Z           "complete": false,
2026-06-15T10:02:42.7495920Z           "evidence": []
2026-06-15T10:02:42.7496109Z         },
2026-06-15T10:02:42.7496283Z         "impl": {
2026-06-15T10:02:42.7496463Z           "complete": true,
2026-06-15T10:02:42.7496677Z           "evidence": [
2026-06-15T10:02:42.7496864Z             {
2026-06-15T10:02:42.7497058Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7497316Z               "line": 345
2026-06-15T10:02:42.7497516Z             },
2026-06-15T10:02:42.7497687Z             {
2026-06-15T10:02:42.7497893Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T10:02:42.7498140Z               "line": 78
2026-06-15T10:02:42.7498321Z             },
2026-06-15T10:02:42.7498480Z             {
2026-06-15T10:02:42.7498679Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T10:02:42.7498926Z               "line": 239
2026-06-15T10:02:42.7499222Z             },
2026-06-15T10:02:42.7510909Z             {
2026-06-15T10:02:42.7511143Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7511391Z               "line": 419
2026-06-15T10:02:42.7511577Z             },
2026-06-15T10:02:42.7511744Z             {
2026-06-15T10:02:42.7511931Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7512178Z               "line": 1067
2026-06-15T10:02:42.7512363Z             },
2026-06-15T10:02:42.7512531Z             {
2026-06-15T10:02:42.7512707Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7512925Z               "line": 1707
2026-06-15T10:02:42.7513108Z             },
2026-06-15T10:02:42.7513272Z             {
2026-06-15T10:02:42.7513452Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7513672Z               "line": 1786
2026-06-15T10:02:42.7513853Z             },
2026-06-15T10:02:42.7514015Z             {
2026-06-15T10:02:42.7514197Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7514415Z               "line": 1847
2026-06-15T10:02:42.7514601Z             }
2026-06-15T10:02:42.7514759Z           ]
2026-06-15T10:02:42.7514916Z         },
2026-06-15T10:02:42.7515074Z         "int": {
2026-06-15T10:02:42.7515240Z           "complete": false,
2026-06-15T10:02:42.7515444Z           "evidence": []
2026-06-15T10:02:42.7515785Z         },
2026-06-15T10:02:42.7515947Z         "unit": {
2026-06-15T10:02:42.7516130Z           "complete": true,
2026-06-15T10:02:42.7516439Z           "evidence": [
2026-06-15T10:02:42.7516624Z             {
2026-06-15T10:02:42.7516829Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T10:02:42.7517074Z               "line": 309
2026-06-15T10:02:42.7517253Z             },
2026-06-15T10:02:42.7517417Z             {
2026-06-15T10:02:42.7517597Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7517830Z               "line": 6548
2026-06-15T10:02:42.7518018Z             }
2026-06-15T10:02:42.7518183Z           ]
2026-06-15T10:02:42.7518388Z         }
2026-06-15T10:02:42.7518564Z       }
2026-06-15T10:02:42.7518717Z     },
2026-06-15T10:02:42.7518874Z     {
2026-06-15T10:02:42.7519094Z       "id": "REQ-CLI-3",
2026-06-15T10:02:42.7519895Z       "title": "Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)",
2026-06-15T10:02:42.7520740Z       "requiredStages": [
2026-06-15T10:02:42.7520931Z         "impl",
2026-06-15T10:02:42.7521097Z         "unit"
2026-06-15T10:02:42.7521255Z       ],
2026-06-15T10:02:42.7521412Z       "stages": {
2026-06-15T10:02:42.7521580Z         "doc": {
2026-06-15T10:02:42.7521746Z           "complete": false,
2026-06-15T10:02:42.7521947Z           "evidence": []
2026-06-15T10:02:42.7522128Z         },
2026-06-15T10:02:42.7522290Z         "impl": {
2026-06-15T10:02:42.7522467Z           "complete": true,
2026-06-15T10:02:42.7522662Z           "evidence": [
2026-06-15T10:02:42.7522834Z             {
2026-06-15T10:02:42.7523019Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7523243Z               "line": 978
2026-06-15T10:02:42.7523423Z             }
2026-06-15T10:02:42.7523583Z           ]
2026-06-15T10:02:42.7523745Z         },
2026-06-15T10:02:42.7523912Z         "int": {
2026-06-15T10:02:42.7524080Z           "complete": false,
2026-06-15T10:02:42.7524293Z           "evidence": []
2026-06-15T10:02:42.7524466Z         },
2026-06-15T10:02:42.7524626Z         "unit": {
2026-06-15T10:02:42.7524813Z           "complete": true,
2026-06-15T10:02:42.7524999Z           "evidence": [
2026-06-15T10:02:42.7525180Z             {
2026-06-15T10:02:42.7525358Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7525581Z               "line": 6375
2026-06-15T10:02:42.7525768Z             }
2026-06-15T10:02:42.7525928Z           ]
2026-06-15T10:02:42.7526089Z         }
2026-06-15T10:02:42.7526250Z       }
2026-06-15T10:02:42.7526408Z     },
2026-06-15T10:02:42.7526569Z     {
2026-06-15T10:02:42.7526746Z       "id": "REQ-CONSENT-1",
2026-06-15T10:02:42.7527733Z       "title": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)",
2026-06-15T10:02:42.7528752Z       "requiredStages": [
2026-06-15T10:02:42.7529001Z         "impl",
2026-06-15T10:02:42.7529172Z         "unit"
2026-06-15T10:02:42.7529339Z       ],
2026-06-15T10:02:42.7529501Z       "stages": {
2026-06-15T10:02:42.7529673Z         "doc": {
2026-06-15T10:02:42.7529845Z           "complete": false,
2026-06-15T10:02:42.7530044Z           "evidence": []
2026-06-15T10:02:42.7530226Z         },
2026-06-15T10:02:42.7530392Z         "impl": {
2026-06-15T10:02:42.7530564Z           "complete": true,
2026-06-15T10:02:42.7530750Z           "evidence": [
2026-06-15T10:02:42.7530926Z             {
2026-06-15T10:02:42.7531116Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T10:02:42.7531366Z               "line": 27
2026-06-15T10:02:42.7531553Z             },
2026-06-15T10:02:42.7531830Z             {
2026-06-15T10:02:42.7532029Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T10:02:42.7532258Z               "line": 75
2026-06-15T10:02:42.7532558Z             },
2026-06-15T10:02:42.7532717Z             {
2026-06-15T10:02:42.7532902Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T10:02:42.7533140Z               "line": 98
2026-06-15T10:02:42.7533318Z             },
2026-06-15T10:02:42.7533483Z             {
2026-06-15T10:02:42.7533671Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T10:02:42.7533902Z               "line": 82
2026-06-15T10:02:42.7534082Z             },
2026-06-15T10:02:42.7534243Z             {
2026-06-15T10:02:42.7534439Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T10:02:42.7534683Z               "line": 109
2026-06-15T10:02:42.7534867Z             },
2026-06-15T10:02:42.7535030Z             {
2026-06-15T10:02:42.7535226Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T10:02:42.7535474Z               "line": 127
2026-06-15T10:02:42.7535650Z             },
2026-06-15T10:02:42.7535812Z             {
2026-06-15T10:02:42.7536008Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T10:02:42.7536233Z               "line": 142
2026-06-15T10:02:42.7536421Z             },
2026-06-15T10:02:42.7536593Z             {
2026-06-15T10:02:42.7536776Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7537002Z               "line": 5962
2026-06-15T10:02:42.7537182Z             }
2026-06-15T10:02:42.7537349Z           ]
2026-06-15T10:02:42.7537502Z         },
2026-06-15T10:02:42.7537664Z         "int": {
2026-06-15T10:02:42.7537845Z           "complete": false,
2026-06-15T10:02:42.7538035Z           "evidence": []
2026-06-15T10:02:42.7538217Z         },
2026-06-15T10:02:42.7538398Z         "unit": {
2026-06-15T10:02:42.7538579Z           "complete": true,
2026-06-15T10:02:42.7538766Z           "evidence": [
2026-06-15T10:02:42.7539022Z             {
2026-06-15T10:02:42.7539223Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T10:02:42.7539460Z               "line": 334
2026-06-15T10:02:42.7539650Z             },
2026-06-15T10:02:42.7539814Z             {
2026-06-15T10:02:42.7540003Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T10:02:42.7540237Z               "line": 380
2026-06-15T10:02:42.7540419Z             },
2026-06-15T10:02:42.7540580Z             {
2026-06-15T10:02:42.7540772Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T10:02:42.7541006Z               "line": 391
2026-06-15T10:02:42.7541190Z             },
2026-06-15T10:02:42.7541354Z             {
2026-06-15T10:02:42.7541543Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T10:02:42.7541775Z               "line": 165
2026-06-15T10:02:42.7541965Z             },
2026-06-15T10:02:42.7542132Z             {
2026-06-15T10:02:42.7542313Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T10:02:42.7542556Z               "line": 184
2026-06-15T10:02:42.7542738Z             },
2026-06-15T10:02:42.7542894Z             {
2026-06-15T10:02:42.7543081Z               "path": "crates/spt-store/src/grants.rs",
2026-06-15T10:02:42.7543320Z               "line": 204
2026-06-15T10:02:42.7543500Z             },
2026-06-15T10:02:42.7543658Z             {
2026-06-15T10:02:42.7543839Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7544053Z               "line": 6728
2026-06-15T10:02:42.7544241Z             }
2026-06-15T10:02:42.7544401Z           ]
2026-06-15T10:02:42.7544558Z         }
2026-06-15T10:02:42.7544713Z       }
2026-06-15T10:02:42.7544870Z     },
2026-06-15T10:02:42.7545018Z     {
2026-06-15T10:02:42.7545185Z       "id": "REQ-CONSENT-2",
2026-06-15T10:02:42.7546100Z       "title": "Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)",
2026-06-15T10:02:42.7547143Z       "requiredStages": [
2026-06-15T10:02:42.7547423Z         "impl",
2026-06-15T10:02:42.7547594Z         "unit"
2026-06-15T10:02:42.7547766Z       ],
2026-06-15T10:02:42.7547928Z       "stages": {
2026-06-15T10:02:42.7548100Z         "doc": {
2026-06-15T10:02:42.7548271Z           "complete": false,
2026-06-15T10:02:42.7548467Z           "evidence": []
2026-06-15T10:02:42.7548653Z         },
2026-06-15T10:02:42.7548815Z         "impl": {
2026-06-15T10:02:42.7549064Z           "complete": true,
2026-06-15T10:02:42.7549272Z           "evidence": [
2026-06-15T10:02:42.7549454Z             {
2026-06-15T10:02:42.7549641Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T10:02:42.7549882Z               "line": 140
2026-06-15T10:02:42.7550073Z             },
2026-06-15T10:02:42.7550230Z             {
2026-06-15T10:02:42.7550416Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T10:02:42.7550679Z               "line": 165
2026-06-15T10:02:42.7550854Z             },
2026-06-15T10:02:42.7551017Z             {
2026-06-15T10:02:42.7551221Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T10:02:42.7551455Z               "line": 199
2026-06-15T10:02:42.7551638Z             },
2026-06-15T10:02:42.7551803Z             {
2026-06-15T10:02:42.7552000Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T10:02:42.7552231Z               "line": 241
2026-06-15T10:02:42.7552410Z             },
2026-06-15T10:02:42.7552573Z             {
2026-06-15T10:02:42.7552758Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T10:02:42.7553002Z               "line": 269
2026-06-15T10:02:42.7553183Z             },
2026-06-15T10:02:42.7553345Z             {
2026-06-15T10:02:42.7553532Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T10:02:42.7553769Z               "line": 300
2026-06-15T10:02:42.7553950Z             },
2026-06-15T10:02:42.7554128Z             {
2026-06-15T10:02:42.7554308Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7554542Z               "line": 5827
2026-06-15T10:02:42.7554738Z             },
2026-06-15T10:02:42.7554899Z             {
2026-06-15T10:02:42.7555080Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7555311Z               "line": 5885
2026-06-15T10:02:42.7555498Z             }
2026-06-15T10:02:42.7555654Z           ]
2026-06-15T10:02:42.7555822Z         },
2026-06-15T10:02:42.7555978Z         "int": {
2026-06-15T10:02:42.7556160Z           "complete": false,
2026-06-15T10:02:42.7556360Z           "evidence": []
2026-06-15T10:02:42.7556546Z         },
2026-06-15T10:02:42.7556709Z         "unit": {
2026-06-15T10:02:42.7556884Z           "complete": true,
2026-06-15T10:02:42.7557085Z           "evidence": [
2026-06-15T10:02:42.7557266Z             {
2026-06-15T10:02:42.7557471Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T10:02:42.7557717Z               "line": 419
2026-06-15T10:02:42.7557896Z             },
2026-06-15T10:02:42.7558055Z             {
2026-06-15T10:02:42.7558249Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T10:02:42.7558497Z               "line": 436
2026-06-15T10:02:42.7558679Z             },
2026-06-15T10:02:42.7558836Z             {
2026-06-15T10:02:42.7559088Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T10:02:42.7559323Z               "line": 472
2026-06-15T10:02:42.7559527Z             },
2026-06-15T10:02:42.7559690Z             {
2026-06-15T10:02:42.7559876Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T10:02:42.7560119Z               "line": 516
2026-06-15T10:02:42.7560301Z             },
2026-06-15T10:02:42.7560461Z             {
2026-06-15T10:02:42.7560648Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7560867Z               "line": 7874
2026-06-15T10:02:42.7561052Z             },
2026-06-15T10:02:42.7561220Z             {
2026-06-15T10:02:42.7561525Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7561748Z               "line": 7956
2026-06-15T10:02:42.7562025Z             }
2026-06-15T10:02:42.7562188Z           ]
2026-06-15T10:02:42.7562349Z         }
2026-06-15T10:02:42.7562522Z       }
2026-06-15T10:02:42.7562682Z     },
2026-06-15T10:02:42.7562839Z     {
2026-06-15T10:02:42.7563023Z       "id": "REQ-CONV-1",
2026-06-15T10:02:42.7564683Z       "title": "Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)",
2026-06-15T10:02:42.7565990Z       "requiredStages": [
2026-06-15T10:02:42.7566195Z         "impl",
2026-06-15T10:02:42.7566372Z         "unit"
2026-06-15T10:02:42.7566543Z       ],
2026-06-15T10:02:42.7566701Z       "stages": {
2026-06-15T10:02:42.7566886Z         "doc": {
2026-06-15T10:02:42.7567068Z           "complete": false,
2026-06-15T10:02:42.7567279Z           "evidence": []
2026-06-15T10:02:42.7567473Z         },
2026-06-15T10:02:42.7567636Z         "impl": {
2026-06-15T10:02:42.7567826Z           "complete": true,
2026-06-15T10:02:42.7568026Z           "evidence": [
2026-06-15T10:02:42.7568211Z             {
2026-06-15T10:02:42.7568414Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.7568668Z               "line": 787
2026-06-15T10:02:42.7568867Z             },
2026-06-15T10:02:42.7569100Z             {
2026-06-15T10:02:42.7569306Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.7569564Z               "line": 94
2026-06-15T10:02:42.7569753Z             },
2026-06-15T10:02:42.7569921Z             {
2026-06-15T10:02:42.7570131Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.7570373Z               "line": 345
2026-06-15T10:02:42.7570560Z             },
2026-06-15T10:02:42.7570727Z             {
2026-06-15T10:02:42.7570922Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.7571175Z               "line": 387
2026-06-15T10:02:42.7571359Z             },
2026-06-15T10:02:42.7571517Z             {
2026-06-15T10:02:42.7571712Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.7571960Z               "line": 472
2026-06-15T10:02:42.7572152Z             },
2026-06-15T10:02:42.7572318Z             {
2026-06-15T10:02:42.7572523Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.7572767Z               "line": 667
2026-06-15T10:02:42.7572957Z             },
2026-06-15T10:02:42.7573124Z             {
2026-06-15T10:02:42.7573323Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.7573574Z               "line": 693
2026-06-15T10:02:42.7573770Z             },
2026-06-15T10:02:42.7573940Z             {
2026-06-15T10:02:42.7574150Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.7574418Z               "line": 369
2026-06-15T10:02:42.7574599Z             },
2026-06-15T10:02:42.7574766Z             {
2026-06-15T10:02:42.7574957Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T10:02:42.7575209Z               "line": 19
2026-06-15T10:02:42.7575395Z             }
2026-06-15T10:02:42.7575553Z           ]
2026-06-15T10:02:42.7575718Z         },
2026-06-15T10:02:42.7575892Z         "int": {
2026-06-15T10:02:42.7576076Z           "complete": false,
2026-06-15T10:02:42.7576271Z           "evidence": []
2026-06-15T10:02:42.7576464Z         },
2026-06-15T10:02:42.7576627Z         "unit": {
2026-06-15T10:02:42.7576812Z           "complete": true,
2026-06-15T10:02:42.7577013Z           "evidence": [
2026-06-15T10:02:42.7577195Z             {
2026-06-15T10:02:42.7577519Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.7577775Z               "line": 1263
2026-06-15T10:02:42.7577962Z             },
2026-06-15T10:02:42.7578225Z             {
2026-06-15T10:02:42.7578435Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T10:02:42.7578680Z               "line": 108
2026-06-15T10:02:42.7578871Z             },
2026-06-15T10:02:42.7579127Z             {
2026-06-15T10:02:42.7579331Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T10:02:42.7579575Z               "line": 134
2026-06-15T10:02:42.7579757Z             },
2026-06-15T10:02:42.7579909Z             {
2026-06-15T10:02:42.7580104Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-15T10:02:42.7580352Z               "line": 144
2026-06-15T10:02:42.7580538Z             }
2026-06-15T10:02:42.7580706Z           ]
2026-06-15T10:02:42.7580871Z         }
2026-06-15T10:02:42.7636517Z       }
2026-06-15T10:02:42.7636731Z     },
2026-06-15T10:02:42.7636967Z     {
2026-06-15T10:02:42.7637145Z       "id": "REQ-CONV-2",
2026-06-15T10:02:42.7638531Z       "title": "Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)",
2026-06-15T10:02:42.7639716Z       "requiredStages": [
2026-06-15T10:02:42.7639920Z         "impl",
2026-06-15T10:02:42.7640087Z         "unit"
2026-06-15T10:02:42.7640260Z       ],
2026-06-15T10:02:42.7640411Z       "stages": {
2026-06-15T10:02:42.7640584Z         "doc": {
2026-06-15T10:02:42.7640763Z           "complete": false,
2026-06-15T10:02:42.7640964Z           "evidence": []
2026-06-15T10:02:42.7641150Z         },
2026-06-15T10:02:42.7641317Z         "impl": {
2026-06-15T10:02:42.7641485Z           "complete": true,
2026-06-15T10:02:42.7641694Z           "evidence": [
2026-06-15T10:02:42.7641881Z             {
2026-06-15T10:02:42.7642083Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.7642349Z               "line": 359
2026-06-15T10:02:42.7642535Z             },
2026-06-15T10:02:42.7642696Z             {
2026-06-15T10:02:42.7642912Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T10:02:42.7643164Z               "line": 119
2026-06-15T10:02:42.7643349Z             },
2026-06-15T10:02:42.7643517Z             {
2026-06-15T10:02:42.7643717Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.7643979Z               "line": 789
2026-06-15T10:02:42.7644160Z             },
2026-06-15T10:02:42.7644322Z             {
2026-06-15T10:02:42.7644527Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.7644776Z               "line": 800
2026-06-15T10:02:42.7644965Z             },
2026-06-15T10:02:42.7645128Z             {
2026-06-15T10:02:42.7645337Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.7645580Z               "line": 334
2026-06-15T10:02:42.7645757Z             },
2026-06-15T10:02:42.7645933Z             {
2026-06-15T10:02:42.7646119Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7646349Z               "line": 2676
2026-06-15T10:02:42.7646534Z             },
2026-06-15T10:02:42.7646692Z             {
2026-06-15T10:02:42.7646882Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7647106Z               "line": 2692
2026-06-15T10:02:42.7647291Z             },
2026-06-15T10:02:42.7647451Z             {
2026-06-15T10:02:42.7647627Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7647856Z               "line": 2751
2026-06-15T10:02:42.7648038Z             }
2026-06-15T10:02:42.7648199Z           ]
2026-06-15T10:02:42.7648362Z         },
2026-06-15T10:02:42.7648524Z         "int": {
2026-06-15T10:02:42.7648701Z           "complete": false,
2026-06-15T10:02:42.7649235Z           "evidence": []
2026-06-15T10:02:42.7649424Z         },
2026-06-15T10:02:42.7649593Z         "unit": {
2026-06-15T10:02:42.7649778Z           "complete": true,
2026-06-15T10:02:42.7650082Z           "evidence": [
2026-06-15T10:02:42.7650271Z             {
2026-06-15T10:02:42.7650480Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.7650732Z               "line": 889
2026-06-15T10:02:42.7650920Z             },
2026-06-15T10:02:42.7651086Z             {
2026-06-15T10:02:42.7651277Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.7651529Z               "line": 1014
2026-06-15T10:02:42.7651715Z             },
2026-06-15T10:02:42.7651882Z             {
2026-06-15T10:02:42.7652093Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T10:02:42.7652360Z               "line": 215
2026-06-15T10:02:42.7652544Z             }
2026-06-15T10:02:42.7652710Z           ]
2026-06-15T10:02:42.7652870Z         }
2026-06-15T10:02:42.7653037Z       }
2026-06-15T10:02:42.7653204Z     },
2026-06-15T10:02:42.7653362Z     {
2026-06-15T10:02:42.7653528Z       "id": "REQ-DAEMON-1",
2026-06-15T10:02:42.7653815Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-15T10:02:42.7654129Z       "requiredStages": [
2026-06-15T10:02:42.7654316Z         "impl",
2026-06-15T10:02:42.7654482Z         "unit",
2026-06-15T10:02:42.7654650Z         "int"
2026-06-15T10:02:42.7654821Z       ],
2026-06-15T10:02:42.7654980Z       "stages": {
2026-06-15T10:02:42.7655164Z         "doc": {
2026-06-15T10:02:42.7655355Z           "complete": false,
2026-06-15T10:02:42.7655563Z           "evidence": []
2026-06-15T10:02:42.7655745Z         },
2026-06-15T10:02:42.7655912Z         "impl": {
2026-06-15T10:02:42.7656092Z           "complete": true,
2026-06-15T10:02:42.7656284Z           "evidence": [
2026-06-15T10:02:42.7656483Z             {
2026-06-15T10:02:42.7656684Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T10:02:42.7656952Z               "line": 12
2026-06-15T10:02:42.7657137Z             },
2026-06-15T10:02:42.7657309Z             {
2026-06-15T10:02:42.7657500Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.7657756Z               "line": 16
2026-06-15T10:02:42.7657936Z             },
2026-06-15T10:02:42.7658096Z             {
2026-06-15T10:02:42.7658292Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.7658546Z               "line": 259
2026-06-15T10:02:42.7658730Z             },
2026-06-15T10:02:42.7658898Z             {
2026-06-15T10:02:42.7659175Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T10:02:42.7659418Z               "line": 15
2026-06-15T10:02:42.7659599Z             },
2026-06-15T10:02:42.7659757Z             {
2026-06-15T10:02:42.7659965Z               "path": "crates/spt/src/api/live.rs",
2026-06-15T10:02:42.7660204Z               "line": 13
2026-06-15T10:02:42.7660382Z             }
2026-06-15T10:02:42.7660547Z           ]
2026-06-15T10:02:42.7660704Z         },
2026-06-15T10:02:42.7660869Z         "int": {
2026-06-15T10:02:42.7661050Z           "complete": true,
2026-06-15T10:02:42.7661254Z           "evidence": [
2026-06-15T10:02:42.7661436Z             {
2026-06-15T10:02:42.7661656Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T10:02:42.7661907Z               "line": 32
2026-06-15T10:02:42.7662094Z             }
2026-06-15T10:02:42.7662256Z           ]
2026-06-15T10:02:42.7662418Z         },
2026-06-15T10:02:42.7662580Z         "unit": {
2026-06-15T10:02:42.7662751Z           "complete": true,
2026-06-15T10:02:42.7662944Z           "evidence": [
2026-06-15T10:02:42.7663132Z             {
2026-06-15T10:02:42.7663323Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T10:02:42.7663564Z               "line": 285
2026-06-15T10:02:42.7663774Z             },
2026-06-15T10:02:42.7663965Z             {
2026-06-15T10:02:42.7664150Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T10:02:42.7664561Z               "line": 293
2026-06-15T10:02:42.7664755Z             },
2026-06-15T10:02:42.7664919Z             {
2026-06-15T10:02:42.7665220Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T10:02:42.7665452Z               "line": 309
2026-06-15T10:02:42.7665633Z             },
2026-06-15T10:02:42.7665797Z             {
2026-06-15T10:02:42.7665985Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T10:02:42.7666229Z               "line": 317
2026-06-15T10:02:42.7666414Z             },
2026-06-15T10:02:42.7666582Z             {
2026-06-15T10:02:42.7666777Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.7667024Z               "line": 609
2026-06-15T10:02:42.7667206Z             },
2026-06-15T10:02:42.7667367Z             {
2026-06-15T10:02:42.7667559Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.7667803Z               "line": 679
2026-06-15T10:02:42.7667983Z             },
2026-06-15T10:02:42.7668155Z             {
2026-06-15T10:02:42.7668349Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T10:02:42.7668594Z               "line": 106
2026-06-15T10:02:42.7668786Z             },
2026-06-15T10:02:42.7669024Z             {
2026-06-15T10:02:42.7669520Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-15T10:02:42.7669891Z               "line": 132
2026-06-15T10:02:42.7670135Z             }
2026-06-15T10:02:42.7670341Z           ]
2026-06-15T10:02:42.7670549Z         }
2026-06-15T10:02:42.7670750Z       }
2026-06-15T10:02:42.7670937Z     },
2026-06-15T10:02:42.7671130Z     {
2026-06-15T10:02:42.7671345Z       "id": "REQ-DAEMON-2",
2026-06-15T10:02:42.7671677Z       "title": "Broker/brain split for seamless self-update",
2026-06-15T10:02:42.7672040Z       "requiredStages": [
2026-06-15T10:02:42.7672288Z         "impl",
2026-06-15T10:02:42.7672506Z         "unit",
2026-06-15T10:02:42.7672721Z         "int"
2026-06-15T10:02:42.7672922Z       ],
2026-06-15T10:02:42.7673145Z       "stages": {
2026-06-15T10:02:42.7673354Z         "doc": {
2026-06-15T10:02:42.7673566Z           "complete": true,
2026-06-15T10:02:42.7673821Z           "evidence": [
2026-06-15T10:02:42.7674043Z             {
2026-06-15T10:02:42.7674300Z               "path": "docs/TWO-HOST-RUNBOOK.md",
2026-06-15T10:02:42.7674606Z               "line": 250
2026-06-15T10:02:42.7674835Z             }
2026-06-15T10:02:42.7675020Z           ]
2026-06-15T10:02:42.7675216Z         },
2026-06-15T10:02:42.7675412Z         "impl": {
2026-06-15T10:02:42.7675630Z           "complete": true,
2026-06-15T10:02:42.7675874Z           "evidence": [
2026-06-15T10:02:42.7676226Z             {
2026-06-15T10:02:42.7676579Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.7677113Z               "line": 23
2026-06-15T10:02:42.7677394Z             },
2026-06-15T10:02:42.7677728Z             {
2026-06-15T10:02:42.7678029Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.7678363Z               "line": 795
2026-06-15T10:02:42.7678682Z             },
2026-06-15T10:02:42.7678938Z             {
2026-06-15T10:02:42.7679274Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.7679708Z               "line": 820
2026-06-15T10:02:42.7680104Z             },
2026-06-15T10:02:42.7680595Z             {
2026-06-15T10:02:42.7680799Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.7681048Z               "line": 1026
2026-06-15T10:02:42.7681211Z             },
2026-06-15T10:02:42.7681492Z             {
2026-06-15T10:02:42.7681747Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.7681891Z               "line": 32
2026-06-15T10:02:42.7682160Z             },
2026-06-15T10:02:42.7682341Z             {
2026-06-15T10:02:42.7682605Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.7682766Z               "line": 549
2026-06-15T10:02:42.7682943Z             },
2026-06-15T10:02:42.7683477Z             {
2026-06-15T10:02:42.7683720Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.7683958Z               "line": 1055
2026-06-15T10:02:42.7684337Z             },
2026-06-15T10:02:42.7684584Z             {
2026-06-15T10:02:42.7684861Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.7685023Z               "line": 1342
2026-06-15T10:02:42.7685232Z             },
2026-06-15T10:02:42.7685476Z             {
2026-06-15T10:02:42.7685729Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T10:02:42.7685933Z               "line": 11
2026-06-15T10:02:42.7686095Z             },
2026-06-15T10:02:42.7686292Z             {
2026-06-15T10:02:42.7686655Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7686825Z               "line": 146
2026-06-15T10:02:42.7687026Z             },
2026-06-15T10:02:42.7687186Z             {
2026-06-15T10:02:42.7687383Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7687568Z               "line": 274
2026-06-15T10:02:42.7687726Z             },
2026-06-15T10:02:42.7687873Z             {
2026-06-15T10:02:42.7688012Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T10:02:42.7688154Z               "line": 13
2026-06-15T10:02:42.7688297Z             },
2026-06-15T10:02:42.7688464Z             {
2026-06-15T10:02:42.7688608Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.7688750Z               "line": 27
2026-06-15T10:02:42.7688880Z             },
2026-06-15T10:02:42.7689156Z             {
2026-06-15T10:02:42.7689341Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.7689464Z               "line": 130
2026-06-15T10:02:42.7689607Z             },
2026-06-15T10:02:42.7689729Z             {
2026-06-15T10:02:42.7689925Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.7690086Z               "line": 537
2026-06-15T10:02:42.7690192Z             },
2026-06-15T10:02:42.7690335Z             {
2026-06-15T10:02:42.7690474Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.7690659Z               "line": 705
2026-06-15T10:02:42.7690822Z             },
2026-06-15T10:02:42.7690936Z             {
2026-06-15T10:02:42.7691093Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.7691217Z               "line": 849
2026-06-15T10:02:42.7691384Z             },
2026-06-15T10:02:42.7691536Z             {
2026-06-15T10:02:42.7691674Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.7691823Z               "line": 936
2026-06-15T10:02:42.7691942Z             },
2026-06-15T10:02:42.7692119Z             {
2026-06-15T10:02:42.7692265Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.7692408Z               "line": 982
2026-06-15T10:02:42.7692568Z             },
2026-06-15T10:02:42.7692677Z             {
2026-06-15T10:02:42.7692896Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T10:02:42.7693035Z               "line": 10
2026-06-15T10:02:42.7693183Z             }
2026-06-15T10:02:42.7693292Z           ]
2026-06-15T10:02:42.7693455Z         },
2026-06-15T10:02:42.7693636Z         "int": {
2026-06-15T10:02:42.7693765Z           "complete": true,
2026-06-15T10:02:42.7693907Z           "evidence": [
2026-06-15T10:02:42.7694028Z             {
2026-06-15T10:02:42.7694212Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-15T10:02:42.7694386Z               "line": 17
2026-06-15T10:02:42.7694508Z             },
2026-06-15T10:02:42.7694653Z             {
2026-06-15T10:02:42.7694822Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T10:02:42.7694965Z               "line": 71
2026-06-15T10:02:42.7695064Z             },
2026-06-15T10:02:42.7695268Z             {
2026-06-15T10:02:42.7695463Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T10:02:42.7695578Z               "line": 91
2026-06-15T10:02:42.7695717Z             },
2026-06-15T10:02:42.7695965Z             {
2026-06-15T10:02:42.7696193Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T10:02:42.7696355Z               "line": 167
2026-06-15T10:02:42.7696576Z             },
2026-06-15T10:02:42.7696718Z             {
2026-06-15T10:02:42.7696857Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T10:02:42.7697079Z               "line": 209
2026-06-15T10:02:42.7697195Z             },
2026-06-15T10:02:42.7697341Z             {
2026-06-15T10:02:42.7697520Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-15T10:02:42.7697637Z               "line": 128
2026-06-15T10:02:42.7697842Z             },
2026-06-15T10:02:42.7697947Z             {
2026-06-15T10:02:42.7698128Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T10:02:42.7698247Z               "line": 59
2026-06-15T10:02:42.7698376Z             }
2026-06-15T10:02:42.7698581Z           ]
2026-06-15T10:02:42.7698690Z         },
2026-06-15T10:02:42.7698843Z         "unit": {
2026-06-15T10:02:42.7699057Z           "complete": true,
2026-06-15T10:02:42.7699229Z           "evidence": [
2026-06-15T10:02:42.7699431Z             {
2026-06-15T10:02:42.7699577Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T10:02:42.7699721Z               "line": 62
2026-06-15T10:02:42.7699830Z             },
2026-06-15T10:02:42.7699962Z             {
2026-06-15T10:02:42.7700143Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T10:02:42.7700303Z               "line": 76
2026-06-15T10:02:42.7700432Z             },
2026-06-15T10:02:42.7700537Z             {
2026-06-15T10:02:42.7700699Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-15T10:02:42.7700857Z               "line": 88
2026-06-15T10:02:42.7701004Z             },
2026-06-15T10:02:42.7701115Z             {
2026-06-15T10:02:42.7701300Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T10:02:42.7701434Z               "line": 294
2026-06-15T10:02:42.7701585Z             },
2026-06-15T10:02:42.7701735Z             {
2026-06-15T10:02:42.7701882Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T10:02:42.7702045Z               "line": 771
2026-06-15T10:02:42.7702173Z             },
2026-06-15T10:02:42.7702322Z             {
2026-06-15T10:02:42.7702507Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T10:02:42.7702627Z               "line": 779
2026-06-15T10:02:42.7702783Z             },
2026-06-15T10:02:42.7702891Z             {
2026-06-15T10:02:42.7703085Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T10:02:42.7703247Z               "line": 796
2026-06-15T10:02:42.7703357Z             },
2026-06-15T10:02:42.7703504Z             {
2026-06-15T10:02:42.7703634Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T10:02:42.7703814Z               "line": 850
2026-06-15T10:02:42.7703968Z             },
2026-06-15T10:02:42.7704091Z             {
2026-06-15T10:02:42.7704263Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.7704382Z               "line": 1053
2026-06-15T10:02:42.7704545Z             },
2026-06-15T10:02:42.7704677Z             {
2026-06-15T10:02:42.7704865Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.7705011Z               "line": 1065
2026-06-15T10:02:42.7705126Z             },
2026-06-15T10:02:42.7705288Z             {
2026-06-15T10:02:42.7705457Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T10:02:42.7705610Z               "line": 110
2026-06-15T10:02:42.7705713Z             },
2026-06-15T10:02:42.7705857Z             {
2026-06-15T10:02:42.7706056Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T10:02:42.7706187Z               "line": 143
2026-06-15T10:02:42.7706333Z             }
2026-06-15T10:02:42.7706443Z           ]
2026-06-15T10:02:42.7706581Z         }
2026-06-15T10:02:42.7706748Z       }
2026-06-15T10:02:42.7706882Z     },
2026-06-15T10:02:42.7707029Z     {
2026-06-15T10:02:42.7707278Z       "id": "REQ-DAEMON-3",
2026-06-15T10:02:42.7707502Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-15T10:02:42.7707611Z       "requiredStages": [
2026-06-15T10:02:42.7707926Z         "impl",
2026-06-15T10:02:42.7708070Z         "unit",
2026-06-15T10:02:42.7708183Z         "int"
2026-06-15T10:02:42.7708344Z       ],
2026-06-15T10:02:42.7708445Z       "stages": {
2026-06-15T10:02:42.7708639Z         "doc": {
2026-06-15T10:02:42.7708769Z           "complete": false,
2026-06-15T10:02:42.7708912Z           "evidence": []
2026-06-15T10:02:42.7709165Z         },
2026-06-15T10:02:42.7709269Z         "impl": {
2026-06-15T10:02:42.7709475Z           "complete": true,
2026-06-15T10:02:42.7709594Z           "evidence": [
2026-06-15T10:02:42.7709742Z             {
2026-06-15T10:02:42.7709904Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7710043Z               "line": 14
2026-06-15T10:02:42.7710233Z             },
2026-06-15T10:02:42.7710339Z             {
2026-06-15T10:02:42.7710522Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T10:02:42.7710656Z               "line": 11
2026-06-15T10:02:42.7710783Z             },
2026-06-15T10:02:42.7710974Z             {
2026-06-15T10:02:42.7711116Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T10:02:42.7711279Z               "line": 270
2026-06-15T10:02:42.7711384Z             },
2026-06-15T10:02:42.7711511Z             {
2026-06-15T10:02:42.7711679Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7711845Z               "line": 1705
2026-06-15T10:02:42.7712004Z             },
2026-06-15T10:02:42.7712113Z             {
2026-06-15T10:02:42.7712257Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7712404Z               "line": 3795
2026-06-15T10:02:42.7712567Z             },
2026-06-15T10:02:42.7712690Z             {
2026-06-15T10:02:42.7712853Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7712990Z               "line": 3816
2026-06-15T10:02:42.7713144Z             }
2026-06-15T10:02:42.7713300Z           ]
2026-06-15T10:02:42.7713423Z         },
2026-06-15T10:02:42.7713561Z         "int": {
2026-06-15T10:02:42.7713706Z           "complete": true,
2026-06-15T10:02:42.7713855Z           "evidence": [
2026-06-15T10:02:42.7714026Z             {
2026-06-15T10:02:42.7714170Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T10:02:42.7714317Z               "line": 49
2026-06-15T10:02:42.7714431Z             },
2026-06-15T10:02:42.7714594Z             {
2026-06-15T10:02:42.7714795Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T10:02:42.7714918Z               "line": 439
2026-06-15T10:02:42.7715056Z             }
2026-06-15T10:02:42.7715171Z           ]
2026-06-15T10:02:42.7715332Z         },
2026-06-15T10:02:42.7715472Z         "unit": {
2026-06-15T10:02:42.7715619Z           "complete": true,
2026-06-15T10:02:42.7715768Z           "evidence": [
2026-06-15T10:02:42.7715881Z             {
2026-06-15T10:02:42.7716080Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7716221Z               "line": 767
2026-06-15T10:02:42.7716364Z             },
2026-06-15T10:02:42.7716509Z             {
2026-06-15T10:02:42.7716645Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7716808Z               "line": 8955
2026-06-15T10:02:42.7716950Z             }
2026-06-15T10:02:42.7717099Z           ]
2026-06-15T10:02:42.7717208Z         }
2026-06-15T10:02:42.7717357Z       }
2026-06-15T10:02:42.7717523Z     },
2026-06-15T10:02:42.7717652Z     {
2026-06-15T10:02:42.7717799Z       "id": "REQ-DAEMON-4",
2026-06-15T10:02:42.7717937Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-15T10:02:42.7718086Z       "requiredStages": [
2026-06-15T10:02:42.7718190Z         "impl",
2026-06-15T10:02:42.7718401Z         "unit",
2026-06-15T10:02:42.7718543Z         "int"
2026-06-15T10:02:42.7718659Z       ],
2026-06-15T10:02:42.7718800Z       "stages": {
2026-06-15T10:02:42.7719138Z         "doc": {
2026-06-15T10:02:42.7719372Z           "complete": false,
2026-06-15T10:02:42.7719533Z           "evidence": []
2026-06-15T10:02:42.7719682Z         },
2026-06-15T10:02:42.7719950Z         "impl": {
2026-06-15T10:02:42.7720054Z           "complete": true,
2026-06-15T10:02:42.7720250Z           "evidence": [
2026-06-15T10:02:42.7720364Z             {
2026-06-15T10:02:42.7720570Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.7720716Z               "line": 414
2026-06-15T10:02:42.7720812Z             },
2026-06-15T10:02:42.7721026Z             {
2026-06-15T10:02:42.7721178Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.7721347Z               "line": 479
2026-06-15T10:02:42.7721461Z             },
2026-06-15T10:02:42.7721587Z             {
2026-06-15T10:02:42.7721824Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.7721930Z               "line": 501
2026-06-15T10:02:42.7722090Z             }
2026-06-15T10:02:42.7722206Z           ]
2026-06-15T10:02:42.7722310Z         },
2026-06-15T10:02:42.7729098Z         "int": {
2026-06-15T10:02:42.7729229Z           "complete": true,
2026-06-15T10:02:42.7729350Z           "evidence": [
2026-06-15T10:02:42.7729454Z             {
2026-06-15T10:02:42.7729604Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T10:02:42.7729698Z               "line": 37
2026-06-15T10:02:42.7729779Z             }
2026-06-15T10:02:42.7729861Z           ]
2026-06-15T10:02:42.7729937Z         },
2026-06-15T10:02:42.7730027Z         "unit": {
2026-06-15T10:02:42.7730123Z           "complete": true,
2026-06-15T10:02:42.7730209Z           "evidence": [
2026-06-15T10:02:42.7730295Z             {
2026-06-15T10:02:42.7730418Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T10:02:42.7730510Z               "line": 428
2026-06-15T10:02:42.7730595Z             },
2026-06-15T10:02:42.7730680Z             {
2026-06-15T10:02:42.7730810Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.7730904Z               "line": 907
2026-06-15T10:02:42.7730990Z             },
2026-06-15T10:02:42.7731072Z             {
2026-06-15T10:02:42.7731191Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.7731290Z               "line": 977
2026-06-15T10:02:42.7731367Z             },
2026-06-15T10:02:42.7731450Z             {
2026-06-15T10:02:42.7731562Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.7731652Z               "line": 1007
2026-06-15T10:02:42.7731738Z             },
2026-06-15T10:02:42.7731819Z             {
2026-06-15T10:02:42.7731936Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.7732016Z               "line": 1040
2026-06-15T10:02:42.7732099Z             }
2026-06-15T10:02:42.7732175Z           ]
2026-06-15T10:02:42.7732256Z         }
2026-06-15T10:02:42.7732341Z       }
2026-06-15T10:02:42.7732428Z     },
2026-06-15T10:02:42.7732518Z     {
2026-06-15T10:02:42.7732613Z       "id": "REQ-DAEMON-5",
2026-06-15T10:02:42.7734025Z       "title": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)",
2026-06-15T10:02:42.7734119Z       "requiredStages": [
2026-06-15T10:02:42.7734206Z         "impl",
2026-06-15T10:02:42.7734283Z         "unit"
2026-06-15T10:02:42.7734369Z       ],
2026-06-15T10:02:42.7734463Z       "stages": {
2026-06-15T10:02:42.7734538Z         "doc": {
2026-06-15T10:02:42.7734629Z           "complete": false,
2026-06-15T10:02:42.7734723Z           "evidence": []
2026-06-15T10:02:42.7734808Z         },
2026-06-15T10:02:42.7734908Z         "impl": {
2026-06-15T10:02:42.7735151Z           "complete": true,
2026-06-15T10:02:42.7735251Z           "evidence": [
2026-06-15T10:02:42.7735328Z             {
2026-06-15T10:02:42.7735461Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.7735648Z               "line": 476
2026-06-15T10:02:42.7735729Z             },
2026-06-15T10:02:42.7735818Z             {
2026-06-15T10:02:42.7735938Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.7736033Z               "line": 769
2026-06-15T10:02:42.7736119Z             },
2026-06-15T10:02:42.7736205Z             {
2026-06-15T10:02:42.7736320Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.7736410Z               "line": 782
2026-06-15T10:02:42.7736491Z             },
2026-06-15T10:02:42.7736573Z             {
2026-06-15T10:02:42.7736696Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.7736772Z               "line": 800
2026-06-15T10:02:42.7736869Z             },
2026-06-15T10:02:42.7736959Z             {
2026-06-15T10:02:42.7737072Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.7737157Z               "line": 841
2026-06-15T10:02:42.7737238Z             }
2026-06-15T10:02:42.7737318Z           ]
2026-06-15T10:02:42.7737398Z         },
2026-06-15T10:02:42.7737479Z         "int": {
2026-06-15T10:02:42.7737576Z           "complete": false,
2026-06-15T10:02:42.7737657Z           "evidence": []
2026-06-15T10:02:42.7737736Z         },
2026-06-15T10:02:42.7737818Z         "unit": {
2026-06-15T10:02:42.7737914Z           "complete": true,
2026-06-15T10:02:42.7737999Z           "evidence": [
2026-06-15T10:02:42.7738090Z             {
2026-06-15T10:02:42.7738205Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.7738295Z               "line": 1189
2026-06-15T10:02:42.7738385Z             },
2026-06-15T10:02:42.7738467Z             {
2026-06-15T10:02:42.7738590Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.7738676Z               "line": 1213
2026-06-15T10:02:42.7738757Z             },
2026-06-15T10:02:42.7738840Z             {
2026-06-15T10:02:42.7739024Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.7739135Z               "line": 1239
2026-06-15T10:02:42.7739215Z             }
2026-06-15T10:02:42.7739296Z           ]
2026-06-15T10:02:42.7739377Z         }
2026-06-15T10:02:42.7739455Z       }
2026-06-15T10:02:42.7739544Z     },
2026-06-15T10:02:42.7739620Z     {
2026-06-15T10:02:42.7739707Z       "id": "REQ-DAEMON-6",
2026-06-15T10:02:42.7741666Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-15T10:02:42.7741770Z       "requiredStages": [
2026-06-15T10:02:42.7741855Z         "impl",
2026-06-15T10:02:42.7741932Z         "unit"
2026-06-15T10:02:42.7742015Z       ],
2026-06-15T10:02:42.7742098Z       "stages": {
2026-06-15T10:02:42.7742174Z         "doc": {
2026-06-15T10:02:42.7742274Z           "complete": false,
2026-06-15T10:02:42.7742351Z           "evidence": []
2026-06-15T10:02:42.7742430Z         },
2026-06-15T10:02:42.7742511Z         "impl": {
2026-06-15T10:02:42.7742606Z           "complete": true,
2026-06-15T10:02:42.7742692Z           "evidence": [
2026-06-15T10:02:42.7742782Z             {
2026-06-15T10:02:42.7742896Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7742978Z               "line": 426
2026-06-15T10:02:42.7743206Z             },
2026-06-15T10:02:42.7743284Z             {
2026-06-15T10:02:42.7743407Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7743574Z               "line": 457
2026-06-15T10:02:42.7743674Z             },
2026-06-15T10:02:42.7743750Z             {
2026-06-15T10:02:42.7743874Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T10:02:42.7743956Z               "line": 55
2026-06-15T10:02:42.7744041Z             },
2026-06-15T10:02:42.7744132Z             {
2026-06-15T10:02:42.7744247Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T10:02:42.7744346Z               "line": 70
2026-06-15T10:02:42.7744423Z             },
2026-06-15T10:02:42.7744504Z             {
2026-06-15T10:02:42.7744609Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7744703Z               "line": 1759
2026-06-15T10:02:42.7744780Z             },
2026-06-15T10:02:42.7744857Z             {
2026-06-15T10:02:42.7744962Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7745065Z               "line": 1785
2026-06-15T10:02:42.7745141Z             }
2026-06-15T10:02:42.7745222Z           ]
2026-06-15T10:02:42.7745307Z         },
2026-06-15T10:02:42.7745392Z         "int": {
2026-06-15T10:02:42.7745487Z           "complete": false,
2026-06-15T10:02:42.7745579Z           "evidence": []
2026-06-15T10:02:42.7745664Z         },
2026-06-15T10:02:42.7745739Z         "unit": {
2026-06-15T10:02:42.7745841Z           "complete": true,
2026-06-15T10:02:42.7745926Z           "evidence": [
2026-06-15T10:02:42.7746011Z             {
2026-06-15T10:02:42.7746131Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T10:02:42.7746231Z               "line": 288
2026-06-15T10:02:42.7746317Z             },
2026-06-15T10:02:42.7746397Z             {
2026-06-15T10:02:42.7746513Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T10:02:42.7746603Z               "line": 299
2026-06-15T10:02:42.7746688Z             },
2026-06-15T10:02:42.7746775Z             {
2026-06-15T10:02:42.7746889Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T10:02:42.7746984Z               "line": 325
2026-06-15T10:02:42.7747061Z             },
2026-06-15T10:02:42.7747147Z             {
2026-06-15T10:02:42.7747256Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T10:02:42.7747342Z               "line": 351
2026-06-15T10:02:42.7747424Z             }
2026-06-15T10:02:42.7747505Z           ]
2026-06-15T10:02:42.7747580Z         }
2026-06-15T10:02:42.7747660Z       }
2026-06-15T10:02:42.7747737Z     },
2026-06-15T10:02:42.7747818Z     {
2026-06-15T10:02:42.7747916Z       "id": "REQ-DAEMON-7",
2026-06-15T10:02:42.7749400Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-15T10:02:42.7749504Z       "requiredStages": [
2026-06-15T10:02:42.7749594Z         "impl",
2026-06-15T10:02:42.7749676Z         "unit"
2026-06-15T10:02:42.7749761Z       ],
2026-06-15T10:02:42.7749847Z       "stages": {
2026-06-15T10:02:42.7749928Z         "doc": {
2026-06-15T10:02:42.7750024Z           "complete": false,
2026-06-15T10:02:42.7750113Z           "evidence": []
2026-06-15T10:02:42.7750204Z         },
2026-06-15T10:02:42.7750282Z         "impl": {
2026-06-15T10:02:42.7750377Z           "complete": true,
2026-06-15T10:02:42.7750465Z           "evidence": [
2026-06-15T10:02:42.7750546Z             {
2026-06-15T10:02:42.7750671Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7750762Z               "line": 476
2026-06-15T10:02:42.7750837Z             },
2026-06-15T10:02:42.7750918Z             {
2026-06-15T10:02:42.7751156Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T10:02:42.7751253Z               "line": 601
2026-06-15T10:02:42.7751424Z             },
2026-06-15T10:02:42.7751509Z             {
2026-06-15T10:02:42.7751625Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T10:02:42.7751724Z               "line": 89
2026-06-15T10:02:42.7751800Z             },
2026-06-15T10:02:42.7751882Z             {
2026-06-15T10:02:42.7751996Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7752087Z               "line": 1706
2026-06-15T10:02:42.7752177Z             }
2026-06-15T10:02:42.7752250Z           ]
2026-06-15T10:02:42.7752330Z         },
2026-06-15T10:02:42.7752411Z         "int": {
2026-06-15T10:02:42.7752506Z           "complete": false,
2026-06-15T10:02:42.7752594Z           "evidence": []
2026-06-15T10:02:42.7752672Z         },
2026-06-15T10:02:42.7752763Z         "unit": {
2026-06-15T10:02:42.7752853Z           "complete": true,
2026-06-15T10:02:42.7752957Z           "evidence": [
2026-06-15T10:02:42.7753032Z             {
2026-06-15T10:02:42.7753161Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T10:02:42.7753262Z               "line": 314
2026-06-15T10:02:42.7753337Z             },
2026-06-15T10:02:42.7753418Z             {
2026-06-15T10:02:42.7753519Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7753610Z               "line": 6548
2026-06-15T10:02:42.7753685Z             }
2026-06-15T10:02:42.7753766Z           ]
2026-06-15T10:02:42.7753854Z         }
2026-06-15T10:02:42.7753929Z       }
2026-06-15T10:02:42.7754024Z     },
2026-06-15T10:02:42.7754095Z     {
2026-06-15T10:02:42.7754192Z       "id": "REQ-DAEMON-8",
2026-06-15T10:02:42.7755150Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-15T10:02:42.7755263Z       "requiredStages": [
2026-06-15T10:02:42.7755354Z         "impl",
2026-06-15T10:02:42.7755442Z         "unit"
2026-06-15T10:02:42.7755526Z       ],
2026-06-15T10:02:42.7755602Z       "stages": {
2026-06-15T10:02:42.7755691Z         "doc": {
2026-06-15T10:02:42.7755783Z           "complete": false,
2026-06-15T10:02:42.7755881Z           "evidence": []
2026-06-15T10:02:42.7755975Z         },
2026-06-15T10:02:42.7756057Z         "impl": {
2026-06-15T10:02:42.7756153Z           "complete": true,
2026-06-15T10:02:42.7756243Z           "evidence": [
2026-06-15T10:02:42.7756333Z             {
2026-06-15T10:02:42.7756458Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7756548Z               "line": 376
2026-06-15T10:02:42.7756633Z             },
2026-06-15T10:02:42.7756711Z             {
2026-06-15T10:02:42.7756834Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T10:02:42.7756934Z               "line": 56
2026-06-15T10:02:42.7757010Z             }
2026-06-15T10:02:42.7757106Z           ]
2026-06-15T10:02:42.7757187Z         },
2026-06-15T10:02:42.7757272Z         "int": {
2026-06-15T10:02:42.7757364Z           "complete": false,
2026-06-15T10:02:42.7757463Z           "evidence": []
2026-06-15T10:02:42.7757540Z         },
2026-06-15T10:02:42.7757626Z         "unit": {
2026-06-15T10:02:42.7757722Z           "complete": true,
2026-06-15T10:02:42.7757806Z           "evidence": [
2026-06-15T10:02:42.7757888Z             {
2026-06-15T10:02:42.7758003Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T10:02:42.7758098Z               "line": 288
2026-06-15T10:02:42.7758182Z             },
2026-06-15T10:02:42.7758277Z             {
2026-06-15T10:02:42.7758396Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-15T10:02:42.7758476Z               "line": 325
2026-06-15T10:02:42.7758556Z             }
2026-06-15T10:02:42.7758628Z           ]
2026-06-15T10:02:42.7758795Z         }
2026-06-15T10:02:42.7758890Z       }
2026-06-15T10:02:42.7759057Z     },
2026-06-15T10:02:42.7759143Z     {
2026-06-15T10:02:42.7759344Z       "id": "REQ-DAEMON-9",
2026-06-15T10:02:42.7765280Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-15T10:02:42.7765414Z       "requiredStages": [
2026-06-15T10:02:42.7765499Z         "impl",
2026-06-15T10:02:42.7765581Z         "unit"
2026-06-15T10:02:42.7765668Z       ],
2026-06-15T10:02:42.7765748Z       "stages": {
2026-06-15T10:02:42.7765833Z         "doc": {
2026-06-15T10:02:42.7765929Z           "complete": false,
2026-06-15T10:02:42.7766026Z           "evidence": []
2026-06-15T10:02:42.7766110Z         },
2026-06-15T10:02:42.7766195Z         "impl": {
2026-06-15T10:02:42.7766285Z           "complete": true,
2026-06-15T10:02:42.7766371Z           "evidence": [
2026-06-15T10:02:42.7766455Z             {
2026-06-15T10:02:42.7766593Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7766684Z               "line": 262
2026-06-15T10:02:42.7766765Z             },
2026-06-15T10:02:42.7766850Z             {
2026-06-15T10:02:42.7766970Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.7767061Z               "line": 600
2026-06-15T10:02:42.7767155Z             },
2026-06-15T10:02:42.7767237Z             {
2026-06-15T10:02:42.7767356Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7767437Z               "line": 190
2026-06-15T10:02:42.7767517Z             },
2026-06-15T10:02:42.7767595Z             {
2026-06-15T10:02:42.7767714Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7767799Z               "line": 275
2026-06-15T10:02:42.7767880Z             },
2026-06-15T10:02:42.7767962Z             {
2026-06-15T10:02:42.7768075Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7768166Z               "line": 312
2026-06-15T10:02:42.7768249Z             },
2026-06-15T10:02:42.7768324Z             {
2026-06-15T10:02:42.7768439Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7768525Z               "line": 1814
2026-06-15T10:02:42.7768606Z             }
2026-06-15T10:02:42.7768681Z           ]
2026-06-15T10:02:42.7768771Z         },
2026-06-15T10:02:42.7768866Z         "int": {
2026-06-15T10:02:42.7769073Z           "complete": false,
2026-06-15T10:02:42.7769174Z           "evidence": []
2026-06-15T10:02:42.7769261Z         },
2026-06-15T10:02:42.7769346Z         "unit": {
2026-06-15T10:02:42.7769445Z           "complete": true,
2026-06-15T10:02:42.7769537Z           "evidence": [
2026-06-15T10:02:42.7769622Z             {
2026-06-15T10:02:42.7769745Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7769842Z               "line": 723
2026-06-15T10:02:42.7769918Z             },
2026-06-15T10:02:42.7769994Z             {
2026-06-15T10:02:42.7770094Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7770185Z               "line": 8820
2026-06-15T10:02:42.7770275Z             }
2026-06-15T10:02:42.7770347Z           ]
2026-06-15T10:02:42.7770433Z         }
2026-06-15T10:02:42.7770524Z       }
2026-06-15T10:02:42.7770604Z     },
2026-06-15T10:02:42.7770685Z     {
2026-06-15T10:02:42.7770782Z       "id": "REQ-DOCS-1",
2026-06-15T10:02:42.7771120Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-15T10:02:42.7771224Z       "requiredStages": [
2026-06-15T10:02:42.7771402Z         "doc",
2026-06-15T10:02:42.7771493Z         "impl"
2026-06-15T10:02:42.7771572Z       ],
2026-06-15T10:02:42.7771657Z       "stages": {
2026-06-15T10:02:42.7771748Z         "doc": {
2026-06-15T10:02:42.7771839Z           "complete": true,
2026-06-15T10:02:42.7771929Z           "evidence": [
2026-06-15T10:02:42.7772010Z             {
2026-06-15T10:02:42.7772111Z               "path": "docs-site/src/index.md",
2026-06-15T10:02:42.7772197Z               "line": 50
2026-06-15T10:02:42.7772281Z             }
2026-06-15T10:02:42.7772358Z           ]
2026-06-15T10:02:42.7772440Z         },
2026-06-15T10:02:42.7772521Z         "impl": {
2026-06-15T10:02:42.7772610Z           "complete": true,
2026-06-15T10:02:42.7772707Z           "evidence": [
2026-06-15T10:02:42.7772788Z             {
2026-06-15T10:02:42.7772910Z               "path": ".github/workflows/docs-publish.yml",
2026-06-15T10:02:42.7773002Z               "line": 12
2026-06-15T10:02:42.7773079Z             },
2026-06-15T10:02:42.7773168Z             {
2026-06-15T10:02:42.7773283Z               "path": "crates/xtask/src/main.rs",
2026-06-15T10:02:42.7773370Z               "line": 14
2026-06-15T10:02:42.7773455Z             }
2026-06-15T10:02:42.7773536Z           ]
2026-06-15T10:02:42.7773612Z         },
2026-06-15T10:02:42.7773685Z         "int": {
2026-06-15T10:02:42.7773788Z           "complete": false,
2026-06-15T10:02:42.7773864Z           "evidence": []
2026-06-15T10:02:42.7773944Z         },
2026-06-15T10:02:42.7774021Z         "unit": {
2026-06-15T10:02:42.7774110Z           "complete": false,
2026-06-15T10:02:42.7774205Z           "evidence": []
2026-06-15T10:02:42.7774281Z         }
2026-06-15T10:02:42.7774362Z       }
2026-06-15T10:02:42.7774444Z     },
2026-06-15T10:02:42.7774534Z     {
2026-06-15T10:02:42.7774620Z       "id": "REQ-DOCS-2",
2026-06-15T10:02:42.7774786Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-15T10:02:42.7774886Z       "requiredStages": [
2026-06-15T10:02:42.7774978Z         "doc",
2026-06-15T10:02:42.7775068Z         "int"
2026-06-15T10:02:42.7775144Z       ],
2026-06-15T10:02:42.7775230Z       "stages": {
2026-06-15T10:02:42.7775307Z         "doc": {
2026-06-15T10:02:42.7775402Z           "complete": true,
2026-06-15T10:02:42.7775487Z           "evidence": [
2026-06-15T10:02:42.7775569Z             {
2026-06-15T10:02:42.7775745Z               "path": "docs-site/src/harness-contract/integration-checklist.md",
2026-06-15T10:02:42.7775831Z               "line": 3
2026-06-15T10:02:42.7775913Z             },
2026-06-15T10:02:42.7775993Z             {
2026-06-15T10:02:42.7776121Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-15T10:02:42.7776218Z               "line": 3
2026-06-15T10:02:42.7776294Z             },
2026-06-15T10:02:42.7776417Z             {
2026-06-15T10:02:42.7776576Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-15T10:02:42.7776722Z               "line": 3
2026-06-15T10:02:42.7776807Z             }
2026-06-15T10:02:42.7776898Z           ]
2026-06-15T10:02:42.7776987Z         },
2026-06-15T10:02:42.7777072Z         "impl": {
2026-06-15T10:02:42.7777167Z           "complete": false,
2026-06-15T10:02:42.7777249Z           "evidence": []
2026-06-15T10:02:42.7777330Z         },
2026-06-15T10:02:42.7777419Z         "int": {
2026-06-15T10:02:42.7777516Z           "complete": true,
2026-06-15T10:02:42.7777606Z           "evidence": [
2026-06-15T10:02:42.7777682Z             {
2026-06-15T10:02:42.7777806Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T10:02:42.7777888Z               "line": 14
2026-06-15T10:02:42.7777978Z             }
2026-06-15T10:02:42.7778063Z           ]
2026-06-15T10:02:42.7778135Z         },
2026-06-15T10:02:42.7778217Z         "unit": {
2026-06-15T10:02:42.7778307Z           "complete": false,
2026-06-15T10:02:42.7778470Z           "evidence": []
2026-06-15T10:02:42.7778560Z         }
2026-06-15T10:02:42.7778650Z       }
2026-06-15T10:02:42.7778726Z     },
2026-06-15T10:02:42.7778880Z     {
2026-06-15T10:02:42.7779095Z       "id": "REQ-DOCS-3",
2026-06-15T10:02:42.7779345Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-15T10:02:42.7779450Z       "requiredStages": [
2026-06-15T10:02:42.7779526Z         "doc"
2026-06-15T10:02:42.7779615Z       ],
2026-06-15T10:02:42.7779695Z       "stages": {
2026-06-15T10:02:42.7779772Z         "doc": {
2026-06-15T10:02:42.7779873Z           "complete": true,
2026-06-15T10:02:42.7779962Z           "evidence": [
2026-06-15T10:02:42.7780048Z             {
2026-06-15T10:02:42.7780159Z               "path": "docs-site/src/index.md",
2026-06-15T10:02:42.7780254Z               "line": 42
2026-06-15T10:02:42.7780325Z             }
2026-06-15T10:02:42.7780412Z           ]
2026-06-15T10:02:42.7780502Z         },
2026-06-15T10:02:42.7780578Z         "impl": {
2026-06-15T10:02:42.7780688Z           "complete": false,
2026-06-15T10:02:42.7780765Z           "evidence": []
2026-06-15T10:02:42.7780844Z         },
2026-06-15T10:02:42.7780930Z         "int": {
2026-06-15T10:02:42.7781022Z           "complete": false,
2026-06-15T10:02:42.7781112Z           "evidence": []
2026-06-15T10:02:42.7781184Z         },
2026-06-15T10:02:42.7781264Z         "unit": {
2026-06-15T10:02:42.7781356Z           "complete": false,
2026-06-15T10:02:42.7781446Z           "evidence": []
2026-06-15T10:02:42.7781527Z         }
2026-06-15T10:02:42.7781623Z       }
2026-06-15T10:02:42.7781709Z     },
2026-06-15T10:02:42.7781784Z     {
2026-06-15T10:02:42.7781880Z       "id": "REQ-DOCS-4",
2026-06-15T10:02:42.7782085Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-15T10:02:42.7782179Z       "requiredStages": [
2026-06-15T10:02:42.7782264Z         "doc",
2026-06-15T10:02:42.7782346Z         "impl",
2026-06-15T10:02:42.7782438Z         "unit"
2026-06-15T10:02:42.7782517Z       ],
2026-06-15T10:02:42.7782608Z       "stages": {
2026-06-15T10:02:42.7782681Z         "doc": {
2026-06-15T10:02:42.7782785Z           "complete": true,
2026-06-15T10:02:42.7782884Z           "evidence": [
2026-06-15T10:02:42.7782971Z             {
2026-06-15T10:02:42.7783100Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-15T10:02:42.7783189Z               "line": 35
2026-06-15T10:02:42.7783276Z             }
2026-06-15T10:02:42.7783352Z           ]
2026-06-15T10:02:42.7783443Z         },
2026-06-15T10:02:42.7783524Z         "impl": {
2026-06-15T10:02:42.7783620Z           "complete": true,
2026-06-15T10:02:42.7783709Z           "evidence": [
2026-06-15T10:02:42.7783790Z             {
2026-06-15T10:02:42.7783925Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.7784015Z               "line": 604
2026-06-15T10:02:42.7784105Z             },
2026-06-15T10:02:42.7784186Z             {
2026-06-15T10:02:42.7784302Z               "path": "crates/xtask/src/main.rs",
2026-06-15T10:02:42.7784400Z               "line": 15
2026-06-15T10:02:42.7784476Z             }
2026-06-15T10:02:42.7784567Z           ]
2026-06-15T10:02:42.7784638Z         },
2026-06-15T10:02:42.7784722Z         "int": {
2026-06-15T10:02:42.7784816Z           "complete": false,
2026-06-15T10:02:42.7784913Z           "evidence": []
2026-06-15T10:02:42.7784990Z         },
2026-06-15T10:02:42.7785070Z         "unit": {
2026-06-15T10:02:42.7785165Z           "complete": true,
2026-06-15T10:02:42.7785242Z           "evidence": [
2026-06-15T10:02:42.7785333Z             {
2026-06-15T10:02:42.7785451Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.7785548Z               "line": 1197
2026-06-15T10:02:42.7785638Z             }
2026-06-15T10:02:42.7785713Z           ]
2026-06-15T10:02:42.7785800Z         }
2026-06-15T10:02:42.7785877Z       }
2026-06-15T10:02:42.7785962Z     },
2026-06-15T10:02:42.7786047Z     {
2026-06-15T10:02:42.7786143Z       "id": "REQ-DOCS-5",
2026-06-15T10:02:42.7786473Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-15T10:02:42.7786572Z       "requiredStages": [
2026-06-15T10:02:42.7786754Z         "impl",
2026-06-15T10:02:42.7786831Z         "int"
2026-06-15T10:02:42.7786919Z       ],
2026-06-15T10:02:42.7787001Z       "stages": {
2026-06-15T10:02:42.7787097Z         "doc": {
2026-06-15T10:02:42.7787197Z           "complete": false,
2026-06-15T10:02:42.7787282Z           "evidence": []
2026-06-15T10:02:42.7787371Z         },
2026-06-15T10:02:42.7787448Z         "impl": {
2026-06-15T10:02:42.7787533Z           "complete": true,
2026-06-15T10:02:42.7787608Z           "evidence": [
2026-06-15T10:02:42.7787688Z             {
2026-06-15T10:02:42.7787809Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.7787904Z               "line": 605
2026-06-15T10:02:42.7787993Z             },
2026-06-15T10:02:42.7788071Z             {
2026-06-15T10:02:42.7788190Z               "path": "crates/xtask/src/main.rs",
2026-06-15T10:02:42.7788275Z               "line": 113
2026-06-15T10:02:42.7788357Z             }
2026-06-15T10:02:42.7788448Z           ]
2026-06-15T10:02:42.7788524Z         },
2026-06-15T10:02:42.7788609Z         "int": {
2026-06-15T10:02:42.7788700Z           "complete": true,
2026-06-15T10:02:42.7788796Z           "evidence": [
2026-06-15T10:02:42.7788872Z             {
2026-06-15T10:02:42.7789087Z               "path": ".github/workflows/ci.yml",
2026-06-15T10:02:42.7789191Z               "line": 107
2026-06-15T10:02:42.7789272Z             },
2026-06-15T10:02:42.7789350Z             {
2026-06-15T10:02:42.7789472Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.7789573Z               "line": 1234
2026-06-15T10:02:42.7789645Z             }
2026-06-15T10:02:42.7789735Z           ]
2026-06-15T10:02:42.7789815Z         },
2026-06-15T10:02:42.7789905Z         "unit": {
2026-06-15T10:02:42.7790001Z           "complete": false,
2026-06-15T10:02:42.7790095Z           "evidence": []
2026-06-15T10:02:42.7790175Z         }
2026-06-15T10:02:42.7790255Z       }
2026-06-15T10:02:42.7790342Z     },
2026-06-15T10:02:42.7790429Z     {
2026-06-15T10:02:42.7790518Z       "id": "REQ-DOCS-6",
2026-06-15T10:02:42.7790842Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-15T10:02:42.7790938Z       "requiredStages": [
2026-06-15T10:02:42.7791029Z         "impl",
2026-06-15T10:02:42.7791110Z         "unit",
2026-06-15T10:02:42.7791194Z         "int"
2026-06-15T10:02:42.7791286Z       ],
2026-06-15T10:02:42.7791367Z       "stages": {
2026-06-15T10:02:42.7791453Z         "doc": {
2026-06-15T10:02:42.7791548Z           "complete": true,
2026-06-15T10:02:42.7791630Z           "evidence": [
2026-06-15T10:02:42.7791715Z             {
2026-06-15T10:02:42.7791853Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-15T10:02:42.7791949Z               "line": 4
2026-06-15T10:02:42.7792035Z             }
2026-06-15T10:02:42.7792120Z           ]
2026-06-15T10:02:42.7792202Z         },
2026-06-15T10:02:42.7792293Z         "impl": {
2026-06-15T10:02:42.7792391Z           "complete": true,
2026-06-15T10:02:42.7792483Z           "evidence": [
2026-06-15T10:02:42.7792560Z             {
2026-06-15T10:02:42.7792669Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7792768Z               "line": 4697
2026-06-15T10:02:42.7792844Z             }
2026-06-15T10:02:42.7792931Z           ]
2026-06-15T10:02:42.7793007Z         },
2026-06-15T10:02:42.7793096Z         "int": {
2026-06-15T10:02:42.7793192Z           "complete": true,
2026-06-15T10:02:42.7793273Z           "evidence": [
2026-06-15T10:02:42.7793359Z             {
2026-06-15T10:02:42.7793478Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T10:02:42.7793575Z               "line": 39
2026-06-15T10:02:42.7793656Z             }
2026-06-15T10:02:42.7793745Z           ]
2026-06-15T10:02:42.7793927Z         },
2026-06-15T10:02:42.7794008Z         "unit": {
2026-06-15T10:02:42.7794098Z           "complete": true,
2026-06-15T10:02:42.7794180Z           "evidence": [
2026-06-15T10:02:42.7794360Z             {
2026-06-15T10:02:42.7794466Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7794566Z               "line": 8982
2026-06-15T10:02:42.7794661Z             }
2026-06-15T10:02:42.7794742Z           ]
2026-06-15T10:02:42.7794824Z         }
2026-06-15T10:02:42.7794913Z       }
2026-06-15T10:02:42.7794994Z     },
2026-06-15T10:02:42.7795074Z     {
2026-06-15T10:02:42.7795175Z       "id": "REQ-ELEVATE-1",
2026-06-15T10:02:42.7798359Z       "title": "Cross-platform self-elevating re-launch for privilege-gated commands: a pure decision seam `decide_elevation_path(os, elevation, interactive_tty, has_display, has_pkexec, has_term_emulator) -> ElevatePath{AlreadyElevated, InlineSudo, UacWindow, Pkexec, TerminalEmulator, PrintHint}` selecting how to re-acquire privilege, and the per-OS impure launchers it dispatches — Windows UAC console (ShellExecuteW `runas` on the abs-exe + verbatim argv; the elevated child does the work, prints 'You can close this window', and pauses for a keypress; the original prints 'Elevated terminal launched…' and exits 0; NEVER pipes the child's stdout back across the privilege boundary), Linux desktop pkexec (preferred, native polkit GUI auth) else x-terminal-emulator -e sudo (fallback list x-terminal-emulator→gnome-terminal→konsole→xterm), the existing interactive-TTY inline sudo, and the headless/no-path floor that prints the absolute-path command. Reused by every gated command (not subnet-specific). Generalizes should_auto_elevate.",
2026-06-15T10:02:42.7798464Z       "requiredStages": [
2026-06-15T10:02:42.7798544Z         "doc",
2026-06-15T10:02:42.7798626Z         "impl",
2026-06-15T10:02:42.7798708Z         "unit"
2026-06-15T10:02:42.7798797Z       ],
2026-06-15T10:02:42.7798882Z       "stages": {
2026-06-15T10:02:42.7799036Z         "doc": {
2026-06-15T10:02:42.7799145Z           "complete": true,
2026-06-15T10:02:42.7799237Z           "evidence": [
2026-06-15T10:02:42.7799309Z             {
2026-06-15T10:02:42.7799403Z               "path": "CONTEXT.md",
2026-06-15T10:02:42.7799522Z               "line": 629
2026-06-15T10:02:42.7799600Z             }
2026-06-15T10:02:42.7799685Z           ]
2026-06-15T10:02:42.7799765Z         },
2026-06-15T10:02:42.7799851Z         "impl": {
2026-06-15T10:02:42.7799943Z           "complete": true,
2026-06-15T10:02:42.7800023Z           "evidence": [
2026-06-15T10:02:42.7800099Z             {
2026-06-15T10:02:42.7800195Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7800291Z               "line": 3132
2026-06-15T10:02:42.7800371Z             },
2026-06-15T10:02:42.7800451Z             {
2026-06-15T10:02:42.7800551Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7800632Z               "line": 3177
2026-06-15T10:02:42.7800711Z             },
2026-06-15T10:02:42.7800791Z             {
2026-06-15T10:02:42.7800902Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7800998Z               "line": 3239
2026-06-15T10:02:42.7801073Z             },
2026-06-15T10:02:42.7801163Z             {
2026-06-15T10:02:42.7801265Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.7801364Z               "line": 92
2026-06-15T10:02:42.7801440Z             },
2026-06-15T10:02:42.7801522Z             {
2026-06-15T10:02:42.7801631Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.7801722Z               "line": 148
2026-06-15T10:02:42.7801813Z             }
2026-06-15T10:02:42.7801894Z           ]
2026-06-15T10:02:42.7801984Z         },
2026-06-15T10:02:42.7802060Z         "int": {
2026-06-15T10:02:42.7802152Z           "complete": false,
2026-06-15T10:02:42.7802247Z           "evidence": []
2026-06-15T10:02:42.7802328Z         },
2026-06-15T10:02:42.7802418Z         "unit": {
2026-06-15T10:02:42.7802509Z           "complete": true,
2026-06-15T10:02:42.7802604Z           "evidence": [
2026-06-15T10:02:42.7802791Z             {
2026-06-15T10:02:42.7802914Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.7803096Z               "line": 442
2026-06-15T10:02:42.7803182Z             },
2026-06-15T10:02:42.7803266Z             {
2026-06-15T10:02:42.7803366Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.7803461Z               "line": 460
2026-06-15T10:02:42.7803553Z             }
2026-06-15T10:02:42.7803632Z           ]
2026-06-15T10:02:42.7803713Z         }
2026-06-15T10:02:42.7803786Z       }
2026-06-15T10:02:42.7803872Z     },
2026-06-15T10:02:42.7803947Z     {
2026-06-15T10:02:42.7804048Z       "id": "REQ-EP-1",
2026-06-15T10:02:42.7804181Z       "title": "Day-one endpoint types; open type system",
2026-06-15T10:02:42.7804276Z       "requiredStages": [
2026-06-15T10:02:42.7804367Z         "impl",
2026-06-15T10:02:42.7804449Z         "unit"
2026-06-15T10:02:42.7804524Z       ],
2026-06-15T10:02:42.7804600Z       "stages": {
2026-06-15T10:02:42.7804687Z         "doc": {
2026-06-15T10:02:42.7804778Z           "complete": false,
2026-06-15T10:02:42.7805130Z           "evidence": []
2026-06-15T10:02:42.7805249Z         },
2026-06-15T10:02:42.7805399Z         "impl": {
2026-06-15T10:02:42.7805516Z           "complete": true,
2026-06-15T10:02:42.7811920Z           "evidence": [
2026-06-15T10:02:42.7812043Z             {
2026-06-15T10:02:42.7812187Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T10:02:42.7812267Z               "line": 77
2026-06-15T10:02:42.7812373Z             },
2026-06-15T10:02:42.7812473Z             {
2026-06-15T10:02:42.7812629Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T10:02:42.7812722Z               "line": 94
2026-06-15T10:02:42.7812802Z             }
2026-06-15T10:02:42.7812883Z           ]
2026-06-15T10:02:42.7812964Z         },
2026-06-15T10:02:42.7813041Z         "int": {
2026-06-15T10:02:42.7813169Z           "complete": false,
2026-06-15T10:02:42.7813337Z           "evidence": []
2026-06-15T10:02:42.7813418Z         },
2026-06-15T10:02:42.7813493Z         "unit": {
2026-06-15T10:02:42.7813588Z           "complete": true,
2026-06-15T10:02:42.7813671Z           "evidence": [
2026-06-15T10:02:42.7813751Z             {
2026-06-15T10:02:42.7813888Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T10:02:42.7813978Z               "line": 161
2026-06-15T10:02:42.7814056Z             },
2026-06-15T10:02:42.7814136Z             {
2026-06-15T10:02:42.7814255Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T10:02:42.7814336Z               "line": 178
2026-06-15T10:02:42.7814412Z             }
2026-06-15T10:02:42.7814503Z           ]
2026-06-15T10:02:42.7814579Z         }
2026-06-15T10:02:42.7814666Z       }
2026-06-15T10:02:42.7814746Z     },
2026-06-15T10:02:42.7814827Z     {
2026-06-15T10:02:42.7814922Z       "id": "REQ-EP-2",
2026-06-15T10:02:42.7815094Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-15T10:02:42.7815199Z       "requiredStages": [
2026-06-15T10:02:42.7815276Z         "impl",
2026-06-15T10:02:42.7815366Z         "unit"
2026-06-15T10:02:42.7815447Z       ],
2026-06-15T10:02:42.7815542Z       "stages": {
2026-06-15T10:02:42.7815624Z         "doc": {
2026-06-15T10:02:42.7815723Z           "complete": false,
2026-06-15T10:02:42.7815818Z           "evidence": []
2026-06-15T10:02:42.7815896Z         },
2026-06-15T10:02:42.7815982Z         "impl": {
2026-06-15T10:02:42.7816076Z           "complete": true,
2026-06-15T10:02:42.7816170Z           "evidence": [
2026-06-15T10:02:42.7816242Z             {
2026-06-15T10:02:42.7816369Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T10:02:42.7816478Z               "line": 114
2026-06-15T10:02:42.7816603Z             },
2026-06-15T10:02:42.7816689Z             {
2026-06-15T10:02:42.7816798Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T10:02:42.7816898Z               "line": 131
2026-06-15T10:02:42.7817126Z             },
2026-06-15T10:02:42.7817218Z             {
2026-06-15T10:02:42.7817356Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T10:02:42.7817566Z               "line": 138
2026-06-15T10:02:42.7817657Z             }
2026-06-15T10:02:42.7817737Z           ]
2026-06-15T10:02:42.7817819Z         },
2026-06-15T10:02:42.7817905Z         "int": {
2026-06-15T10:02:42.7818000Z           "complete": false,
2026-06-15T10:02:42.7818094Z           "evidence": []
2026-06-15T10:02:42.7818177Z         },
2026-06-15T10:02:42.7818261Z         "unit": {
2026-06-15T10:02:42.7818361Z           "complete": true,
2026-06-15T10:02:42.7818453Z           "evidence": [
2026-06-15T10:02:42.7818530Z             {
2026-06-15T10:02:42.7818653Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T10:02:42.7818749Z               "line": 190
2026-06-15T10:02:42.7818831Z             },
2026-06-15T10:02:42.7818919Z             {
2026-06-15T10:02:42.7819128Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T10:02:42.7819232Z               "line": 208
2026-06-15T10:02:42.7819312Z             },
2026-06-15T10:02:42.7819403Z             {
2026-06-15T10:02:42.7819527Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-15T10:02:42.7819608Z               "line": 221
2026-06-15T10:02:42.7819683Z             }
2026-06-15T10:02:42.7819766Z           ]
2026-06-15T10:02:42.7819856Z         }
2026-06-15T10:02:42.7819931Z       }
2026-06-15T10:02:42.7820022Z     },
2026-06-15T10:02:42.7820105Z     {
2026-06-15T10:02:42.7820190Z       "id": "REQ-EP-3",
2026-06-15T10:02:42.7820376Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-15T10:02:42.7820466Z       "requiredStages": [
2026-06-15T10:02:42.7820561Z         "impl",
2026-06-15T10:02:42.7820637Z         "unit"
2026-06-15T10:02:42.7820730Z       ],
2026-06-15T10:02:42.7820819Z       "stages": {
2026-06-15T10:02:42.7820904Z         "doc": {
2026-06-15T10:02:42.7821001Z           "complete": false,
2026-06-15T10:02:42.7821101Z           "evidence": []
2026-06-15T10:02:42.7821190Z         },
2026-06-15T10:02:42.7821272Z         "impl": {
2026-06-15T10:02:42.7821374Z           "complete": true,
2026-06-15T10:02:42.7821467Z           "evidence": [
2026-06-15T10:02:42.7821547Z             {
2026-06-15T10:02:42.7821671Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T10:02:42.7821766Z               "line": 31
2026-06-15T10:02:42.7821855Z             },
2026-06-15T10:02:42.7821931Z             {
2026-06-15T10:02:42.7822051Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T10:02:42.7822137Z               "line": 49
2026-06-15T10:02:42.7822212Z             }
2026-06-15T10:02:42.7822303Z           ]
2026-06-15T10:02:42.7822390Z         },
2026-06-15T10:02:42.7822475Z         "int": {
2026-06-15T10:02:42.7822570Z           "complete": false,
2026-06-15T10:02:42.7822661Z           "evidence": []
2026-06-15T10:02:42.7822756Z         },
2026-06-15T10:02:42.7822842Z         "unit": {
2026-06-15T10:02:42.7822943Z           "complete": true,
2026-06-15T10:02:42.7823028Z           "evidence": [
2026-06-15T10:02:42.7823119Z             {
2026-06-15T10:02:42.7823233Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T10:02:42.7823329Z               "line": 156
2026-06-15T10:02:42.7823419Z             },
2026-06-15T10:02:42.7823504Z             {
2026-06-15T10:02:42.7823625Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T10:02:42.7823705Z               "line": 164
2026-06-15T10:02:42.7823796Z             },
2026-06-15T10:02:42.7823872Z             {
2026-06-15T10:02:42.7823992Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T10:02:42.7824086Z               "line": 177
2026-06-15T10:02:42.7824163Z             },
2026-06-15T10:02:42.7824245Z             {
2026-06-15T10:02:42.7824363Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T10:02:42.7824457Z               "line": 200
2026-06-15T10:02:42.7824533Z             },
2026-06-15T10:02:42.7824729Z             {
2026-06-15T10:02:42.7824853Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T10:02:42.7824940Z               "line": 216
2026-06-15T10:02:42.7825124Z             },
2026-06-15T10:02:42.7825197Z             {
2026-06-15T10:02:42.7825316Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-15T10:02:42.7825410Z               "line": 233
2026-06-15T10:02:42.7825502Z             }
2026-06-15T10:02:42.7825588Z           ]
2026-06-15T10:02:42.7825664Z         }
2026-06-15T10:02:42.7825754Z       }
2026-06-15T10:02:42.7825832Z     },
2026-06-15T10:02:42.7825922Z     {
2026-06-15T10:02:42.7826017Z       "id": "REQ-EP-4",
2026-06-15T10:02:42.7826170Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-15T10:02:42.7826274Z       "requiredStages": [
2026-06-15T10:02:42.7826350Z         "impl",
2026-06-15T10:02:42.7826441Z         "unit"
2026-06-15T10:02:42.7826523Z       ],
2026-06-15T10:02:42.7826612Z       "stages": {
2026-06-15T10:02:42.7826693Z         "doc": {
2026-06-15T10:02:42.7826783Z           "complete": false,
2026-06-15T10:02:42.7826878Z           "evidence": []
2026-06-15T10:02:42.7826967Z         },
2026-06-15T10:02:42.7827052Z         "impl": {
2026-06-15T10:02:42.7827143Z           "complete": true,
2026-06-15T10:02:42.7827226Z           "evidence": [
2026-06-15T10:02:42.7827305Z             {
2026-06-15T10:02:42.7827425Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.7827520Z               "line": 717
2026-06-15T10:02:42.7827596Z             },
2026-06-15T10:02:42.7827677Z             {
2026-06-15T10:02:42.7827793Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.7827888Z               "line": 1048
2026-06-15T10:02:42.7827977Z             },
2026-06-15T10:02:42.7828064Z             {
2026-06-15T10:02:42.7828188Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.7828287Z               "line": 1359
2026-06-15T10:02:42.7828379Z             },
2026-06-15T10:02:42.7828460Z             {
2026-06-15T10:02:42.7828578Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T10:02:42.7828674Z               "line": 118
2026-06-15T10:02:42.7828761Z             },
2026-06-15T10:02:42.7828836Z             {
2026-06-15T10:02:42.7829032Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T10:02:42.7829118Z               "line": 609
2026-06-15T10:02:42.7829198Z             },
2026-06-15T10:02:42.7829275Z             {
2026-06-15T10:02:42.7829391Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T10:02:42.7829488Z               "line": 734
2026-06-15T10:02:42.7829569Z             },
2026-06-15T10:02:42.7829650Z             {
2026-06-15T10:02:42.7829769Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.7829853Z               "line": 217
2026-06-15T10:02:42.7829938Z             },
2026-06-15T10:02:42.7830030Z             {
2026-06-15T10:02:42.7830148Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.7830253Z               "line": 400
2026-06-15T10:02:42.7830326Z             },
2026-06-15T10:02:42.7830416Z             {
2026-06-15T10:02:42.7830539Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.7830636Z               "line": 1017
2026-06-15T10:02:42.7830721Z             }
2026-06-15T10:02:42.7830806Z           ]
2026-06-15T10:02:42.7830882Z         },
2026-06-15T10:02:42.7830960Z         "int": {
2026-06-15T10:02:42.7831054Z           "complete": false,
2026-06-15T10:02:42.7831135Z           "evidence": []
2026-06-15T10:02:42.7831226Z         },
2026-06-15T10:02:42.7831304Z         "unit": {
2026-06-15T10:02:42.7831398Z           "complete": true,
2026-06-15T10:02:42.7831493Z           "evidence": [
2026-06-15T10:02:42.7831570Z             {
2026-06-15T10:02:42.7831684Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T10:02:42.7831779Z               "line": 825
2026-06-15T10:02:42.7831871Z             },
2026-06-15T10:02:42.7832055Z             {
2026-06-15T10:02:42.7832188Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-15T10:02:42.7832284Z               "line": 76
2026-06-15T10:02:42.7832457Z             },
2026-06-15T10:02:42.7832553Z             {
2026-06-15T10:02:42.7832673Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-15T10:02:42.7832772Z               "line": 147
2026-06-15T10:02:42.7832858Z             }
2026-06-15T10:02:42.7832935Z           ]
2026-06-15T10:02:42.7833026Z         }
2026-06-15T10:02:42.7833110Z       }
2026-06-15T10:02:42.7833198Z     },
2026-06-15T10:02:42.7833293Z     {
2026-06-15T10:02:42.7833383Z       "id": "REQ-EP-5",
2026-06-15T10:02:42.7834041Z       "title": "Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope",
2026-06-15T10:02:42.7834137Z       "requiredStages": [
2026-06-15T10:02:42.7834237Z         "impl",
2026-06-15T10:02:42.7834312Z         "unit",
2026-06-15T10:02:42.7834403Z         "int"
2026-06-15T10:02:42.7834486Z       ],
2026-06-15T10:02:42.7834580Z       "stages": {
2026-06-15T10:02:42.7834666Z         "doc": {
2026-06-15T10:02:42.7834752Z           "complete": false,
2026-06-15T10:02:42.7834843Z           "evidence": []
2026-06-15T10:02:42.7834927Z         },
2026-06-15T10:02:42.7835012Z         "impl": {
2026-06-15T10:02:42.7835108Z           "complete": true,
2026-06-15T10:02:42.7835185Z           "evidence": [
2026-06-15T10:02:42.7835275Z             {
2026-06-15T10:02:42.7835408Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.7835500Z               "line": 367
2026-06-15T10:02:42.7835576Z             },
2026-06-15T10:02:42.7835670Z             {
2026-06-15T10:02:42.7835791Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T10:02:42.7835876Z               "line": 18
2026-06-15T10:02:42.7835970Z             },
2026-06-15T10:02:42.7836052Z             {
2026-06-15T10:02:42.7836176Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T10:02:42.7836271Z               "line": 63
2026-06-15T10:02:42.7836352Z             },
2026-06-15T10:02:42.7836430Z             {
2026-06-15T10:02:42.7836533Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T10:02:42.7836633Z               "line": 92
2026-06-15T10:02:42.7836711Z             },
2026-06-15T10:02:42.7836787Z             {
2026-06-15T10:02:42.7836906Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T10:02:42.7837001Z               "line": 167
2026-06-15T10:02:42.7837093Z             },
2026-06-15T10:02:42.7837172Z             {
2026-06-15T10:02:42.7837290Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T10:02:42.7837381Z               "line": 179
2026-06-15T10:02:42.7837457Z             },
2026-06-15T10:02:42.7837531Z             {
2026-06-15T10:02:42.7837646Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.7837742Z               "line": 114
2026-06-15T10:02:42.7837823Z             },
2026-06-15T10:02:42.7837918Z             {
2026-06-15T10:02:42.7838033Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T10:02:42.7838128Z               "line": 22
2026-06-15T10:02:42.7838208Z             },
2026-06-15T10:02:42.7838285Z             {
2026-06-15T10:02:42.7838404Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T10:02:42.7838495Z               "line": 145
2026-06-15T10:02:42.7838580Z             },
2026-06-15T10:02:42.7838663Z             {
2026-06-15T10:02:42.7838786Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T10:02:42.7838886Z               "line": 174
2026-06-15T10:02:42.7839091Z             },
2026-06-15T10:02:42.7839172Z             {
2026-06-15T10:02:42.7839287Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T10:02:42.7839391Z               "line": 196
2026-06-15T10:02:42.7839636Z             },
2026-06-15T10:02:42.7839724Z             {
2026-06-15T10:02:42.7839840Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T10:02:42.7840025Z               "line": 221
2026-06-15T10:02:42.7840106Z             },
2026-06-15T10:02:42.7840181Z             {
2026-06-15T10:02:42.7840301Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T10:02:42.7840380Z               "line": 247
2026-06-15T10:02:42.7840475Z             },
2026-06-15T10:02:42.7840561Z             {
2026-06-15T10:02:42.7840685Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T10:02:42.7840770Z               "line": 270
2026-06-15T10:02:42.7840847Z             },
2026-06-15T10:02:42.7840928Z             {
2026-06-15T10:02:42.7841047Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.7841142Z               "line": 100
2026-06-15T10:02:42.7841234Z             },
2026-06-15T10:02:42.7841315Z             {
2026-06-15T10:02:42.7841428Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7841515Z               "line": 5202
2026-06-15T10:02:42.7841596Z             },
2026-06-15T10:02:42.7841677Z             {
2026-06-15T10:02:42.7841786Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7841873Z               "line": 5336
2026-06-15T10:02:42.7841953Z             },
2026-06-15T10:02:42.7842029Z             {
2026-06-15T10:02:42.7842130Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7842235Z               "line": 5502
2026-06-15T10:02:42.7842315Z             },
2026-06-15T10:02:42.7842401Z             {
2026-06-15T10:02:42.7842498Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7842592Z               "line": 5884
2026-06-15T10:02:42.7842682Z             }
2026-06-15T10:02:42.7842763Z           ]
2026-06-15T10:02:42.7842844Z         },
2026-06-15T10:02:42.7842918Z         "int": {
2026-06-15T10:02:42.7843013Z           "complete": true,
2026-06-15T10:02:42.7843113Z           "evidence": [
2026-06-15T10:02:42.7843195Z             {
2026-06-15T10:02:42.7843323Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T10:02:42.7843418Z               "line": 16
2026-06-15T10:02:42.7843515Z             },
2026-06-15T10:02:42.7843590Z             {
2026-06-15T10:02:42.7843714Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T10:02:42.7843796Z               "line": 15
2026-06-15T10:02:42.7843881Z             }
2026-06-15T10:02:42.7843967Z           ]
2026-06-15T10:02:42.7844053Z         },
2026-06-15T10:02:42.7844143Z         "unit": {
2026-06-15T10:02:42.7844234Z           "complete": true,
2026-06-15T10:02:42.7844324Z           "evidence": [
2026-06-15T10:02:42.7844411Z             {
2026-06-15T10:02:42.7844530Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T10:02:42.7844625Z               "line": 246
2026-06-15T10:02:42.7844707Z             },
2026-06-15T10:02:42.7844787Z             {
2026-06-15T10:02:42.7844911Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T10:02:42.7845007Z               "line": 306
2026-06-15T10:02:42.7845084Z             },
2026-06-15T10:02:42.7845168Z             {
2026-06-15T10:02:42.7845293Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-15T10:02:42.7845375Z               "line": 363
2026-06-15T10:02:42.7845469Z             },
2026-06-15T10:02:42.7845549Z             {
2026-06-15T10:02:42.7845668Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T10:02:42.7845769Z               "line": 286
2026-06-15T10:02:42.7845873Z             },
2026-06-15T10:02:42.7845949Z             {
2026-06-15T10:02:42.7846065Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T10:02:42.7846155Z               "line": 338
2026-06-15T10:02:42.7846230Z             },
2026-06-15T10:02:42.7846313Z             {
2026-06-15T10:02:42.7846436Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.7846526Z               "line": 659
2026-06-15T10:02:42.7846718Z             },
2026-06-15T10:02:42.7846808Z             {
2026-06-15T10:02:42.7846908Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7847070Z               "line": 7037
2026-06-15T10:02:42.7847156Z             },
2026-06-15T10:02:42.7847237Z             {
2026-06-15T10:02:42.7847338Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7847431Z               "line": 7164
2026-06-15T10:02:42.7847508Z             },
2026-06-15T10:02:42.7847591Z             {
2026-06-15T10:02:42.7847691Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7847774Z               "line": 7753
2026-06-15T10:02:42.7847864Z             },
2026-06-15T10:02:42.7847951Z             {
2026-06-15T10:02:42.7848054Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7848135Z               "line": 7869
2026-06-15T10:02:42.7848226Z             }
2026-06-15T10:02:42.7848311Z           ]
2026-06-15T10:02:42.7848397Z         }
2026-06-15T10:02:42.7848487Z       }
2026-06-15T10:02:42.7848559Z     },
2026-06-15T10:02:42.7848645Z     {
2026-06-15T10:02:42.7848735Z       "id": "REQ-EP-6",
2026-06-15T10:02:42.7850328Z       "title": "Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6",
2026-06-15T10:02:42.7850429Z       "requiredStages": [
2026-06-15T10:02:42.7850511Z         "doc",
2026-06-15T10:02:42.7850604Z         "impl",
2026-06-15T10:02:42.7850680Z         "unit"
2026-06-15T10:02:42.7850766Z       ],
2026-06-15T10:02:42.7850856Z       "stages": {
2026-06-15T10:02:42.7850931Z         "doc": {
2026-06-15T10:02:42.7851021Z           "complete": true,
2026-06-15T10:02:42.7851107Z           "evidence": [
2026-06-15T10:02:42.7851198Z             {
2026-06-15T10:02:42.7851297Z               "path": "CONTEXT.md",
2026-06-15T10:02:42.7851392Z               "line": 208
2026-06-15T10:02:42.7851484Z             }
2026-06-15T10:02:42.7851556Z           ]
2026-06-15T10:02:42.7851635Z         },
2026-06-15T10:02:42.7851727Z         "impl": {
2026-06-15T10:02:42.7851822Z           "complete": true,
2026-06-15T10:02:42.7851908Z           "evidence": [
2026-06-15T10:02:42.7851998Z             {
2026-06-15T10:02:42.7852119Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.7852203Z               "line": 174
2026-06-15T10:02:42.7852294Z             }
2026-06-15T10:02:42.7852376Z           ]
2026-06-15T10:02:42.7852452Z         },
2026-06-15T10:02:42.7852532Z         "int": {
2026-06-15T10:02:42.7852628Z           "complete": true,
2026-06-15T10:02:42.7852719Z           "evidence": [
2026-06-15T10:02:42.7852800Z             {
2026-06-15T10:02:42.7852923Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-15T10:02:42.7853001Z               "line": 18
2026-06-15T10:02:42.7853096Z             }
2026-06-15T10:02:42.7853175Z           ]
2026-06-15T10:02:42.7853256Z         },
2026-06-15T10:02:42.7853351Z         "unit": {
2026-06-15T10:02:42.7853441Z           "complete": true,
2026-06-15T10:02:42.7853535Z           "evidence": [
2026-06-15T10:02:42.7853615Z             {
2026-06-15T10:02:42.7853741Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.7853826Z               "line": 528
2026-06-15T10:02:42.7853906Z             },
2026-06-15T10:02:42.7853998Z             {
2026-06-15T10:02:42.7854098Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.7854193Z               "line": 629
2026-06-15T10:02:42.7854269Z             }
2026-06-15T10:02:42.7854351Z           ]
2026-06-15T10:02:42.7854432Z         }
2026-06-15T10:02:42.7854517Z       }
2026-06-15T10:02:42.7854708Z     },
2026-06-15T10:02:42.7854784Z     {
2026-06-15T10:02:42.7854884Z       "id": "REQ-EP-7",
2026-06-15T10:02:42.7856538Z       "title": "Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)",
2026-06-15T10:02:42.7856724Z       "requiredStages": [
2026-06-15T10:02:42.7856814Z         "doc",
2026-06-15T10:02:42.7856891Z         "impl",
2026-06-15T10:02:42.7856986Z         "unit"
2026-06-15T10:02:42.7857067Z       ],
2026-06-15T10:02:42.7857144Z       "stages": {
2026-06-15T10:02:42.7857225Z         "doc": {
2026-06-15T10:02:42.7857329Z           "complete": true,
2026-06-15T10:02:42.7857419Z           "evidence": [
2026-06-15T10:02:42.7857497Z             {
2026-06-15T10:02:42.7857597Z               "path": "CONTEXT.md",
2026-06-15T10:02:42.7857683Z               "line": 432
2026-06-15T10:02:42.7857768Z             }
2026-06-15T10:02:42.7857841Z           ]
2026-06-15T10:02:42.7857926Z         },
2026-06-15T10:02:42.7858006Z         "impl": {
2026-06-15T10:02:42.7858098Z           "complete": true,
2026-06-15T10:02:42.7858189Z           "evidence": [
2026-06-15T10:02:42.7858269Z             {
2026-06-15T10:02:42.7858392Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T10:02:42.7858478Z               "line": 505
2026-06-15T10:02:42.7858558Z             },
2026-06-15T10:02:42.7858638Z             {
2026-06-15T10:02:42.7858751Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T10:02:42.7858843Z               "line": 87
2026-06-15T10:02:42.7858925Z             },
2026-06-15T10:02:42.7859105Z             {
2026-06-15T10:02:42.7859234Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.7859314Z               "line": 81
2026-06-15T10:02:42.7859410Z             },
2026-06-15T10:02:42.7859487Z             {
2026-06-15T10:02:42.7859610Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.7859686Z               "line": 166
2026-06-15T10:02:42.7859783Z             },
2026-06-15T10:02:42.7859868Z             {
2026-06-15T10:02:42.7859967Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7860064Z               "line": 1440
2026-06-15T10:02:42.7860145Z             }
2026-06-15T10:02:42.7860235Z           ]
2026-06-15T10:02:42.7860311Z         },
2026-06-15T10:02:42.7860403Z         "int": {
2026-06-15T10:02:42.7860502Z           "complete": false,
2026-06-15T10:02:42.7860587Z           "evidence": []
2026-06-15T10:02:42.7860674Z         },
2026-06-15T10:02:42.7860760Z         "unit": {
2026-06-15T10:02:42.7860859Z           "complete": true,
2026-06-15T10:02:42.7860955Z           "evidence": [
2026-06-15T10:02:42.7861042Z             {
2026-06-15T10:02:42.7861159Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T10:02:42.7861254Z               "line": 623
2026-06-15T10:02:42.7861340Z             },
2026-06-15T10:02:42.7861421Z             {
2026-06-15T10:02:42.7861538Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T10:02:42.7861623Z               "line": 212
2026-06-15T10:02:42.7861710Z             },
2026-06-15T10:02:42.7861796Z             {
2026-06-15T10:02:42.7861905Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T10:02:42.7861996Z               "line": 307
2026-06-15T10:02:42.7862072Z             },
2026-06-15T10:02:42.7862162Z             {
2026-06-15T10:02:42.7862267Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7862364Z               "line": 6224
2026-06-15T10:02:42.7862454Z             },
2026-06-15T10:02:42.7862539Z             {
2026-06-15T10:02:42.7862754Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7862844Z               "line": 6251
2026-06-15T10:02:42.7862931Z             }
2026-06-15T10:02:42.7863106Z           ]
2026-06-15T10:02:42.7863183Z         }
2026-06-15T10:02:42.7863265Z       }
2026-06-15T10:02:42.7863346Z     },
2026-06-15T10:02:42.7863440Z     {
2026-06-15T10:02:42.7863536Z       "id": "REQ-FRONT-1",
2026-06-15T10:02:42.7863721Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-15T10:02:42.7863816Z       "requiredStages": [],
2026-06-15T10:02:42.7863916Z       "stages": {
2026-06-15T10:02:42.7863992Z         "doc": {
2026-06-15T10:02:42.7864076Z           "complete": false,
2026-06-15T10:02:42.7864166Z           "evidence": []
2026-06-15T10:02:42.7864243Z         },
2026-06-15T10:02:42.7864334Z         "impl": {
2026-06-15T10:02:42.7864419Z           "complete": false,
2026-06-15T10:02:42.7864520Z           "evidence": []
2026-06-15T10:02:42.7864596Z         },
2026-06-15T10:02:42.7864687Z         "int": {
2026-06-15T10:02:42.7864786Z           "complete": false,
2026-06-15T10:02:42.7864863Z           "evidence": []
2026-06-15T10:02:42.7864958Z         },
2026-06-15T10:02:42.7865039Z         "unit": {
2026-06-15T10:02:42.7865139Z           "complete": false,
2026-06-15T10:02:42.7865231Z           "evidence": []
2026-06-15T10:02:42.7865311Z         }
2026-06-15T10:02:42.7865401Z       }
2026-06-15T10:02:42.7865483Z     },
2026-06-15T10:02:42.7865569Z     {
2026-06-15T10:02:42.7865688Z       "id": "REQ-HAZARD-BRAIN-RESPAWN-PATH",
2026-06-15T10:02:42.7868176Z       "title": "The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.",
2026-06-15T10:02:42.7868290Z       "requiredStages": [
2026-06-15T10:02:42.7868382Z         "doc",
2026-06-15T10:02:42.7868467Z         "impl",
2026-06-15T10:02:42.7868552Z         "unit",
2026-06-15T10:02:42.7868633Z         "int"
2026-06-15T10:02:42.7868716Z       ],
2026-06-15T10:02:42.7868806Z       "stages": {
2026-06-15T10:02:42.7868880Z         "doc": {
2026-06-15T10:02:42.7869047Z           "complete": true,
2026-06-15T10:02:42.7869132Z           "evidence": [
2026-06-15T10:02:42.7869221Z             {
2026-06-15T10:02:42.7869336Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T10:02:42.7869436Z               "line": 326
2026-06-15T10:02:42.7869527Z             }
2026-06-15T10:02:42.7869607Z           ]
2026-06-15T10:02:42.7869698Z         },
2026-06-15T10:02:42.7869794Z         "impl": {
2026-06-15T10:02:42.7869879Z           "complete": true,
2026-06-15T10:02:42.7869965Z           "evidence": [
2026-06-15T10:02:42.7870047Z             {
2026-06-15T10:02:42.7870170Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7870261Z               "line": 480
2026-06-15T10:02:42.7870357Z             },
2026-06-15T10:02:42.7870432Z             {
2026-06-15T10:02:42.7870566Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7870652Z               "line": 485
2026-06-15T10:02:42.7870742Z             },
2026-06-15T10:02:42.7870819Z             {
2026-06-15T10:02:42.7870934Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7871029Z               "line": 860
2026-06-15T10:02:42.7871109Z             },
2026-06-15T10:02:42.7871292Z             {
2026-06-15T10:02:42.7871414Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7871510Z               "line": 901
2026-06-15T10:02:42.7871696Z             },
2026-06-15T10:02:42.7871781Z             {
2026-06-15T10:02:42.7871905Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7871990Z               "line": 912
2026-06-15T10:02:42.7872079Z             },
2026-06-15T10:02:42.7872155Z             {
2026-06-15T10:02:42.7872275Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.7872375Z               "line": 358
2026-06-15T10:02:42.7872446Z             }
2026-06-15T10:02:42.7872537Z           ]
2026-06-15T10:02:42.7872618Z         },
2026-06-15T10:02:42.7872704Z         "int": {
2026-06-15T10:02:42.7872799Z           "complete": true,
2026-06-15T10:02:42.7872895Z           "evidence": [
2026-06-15T10:02:42.7872980Z             {
2026-06-15T10:02:42.7873118Z               "path": "crates/spt/tests/brain_respawn_rename.rs",
2026-06-15T10:02:42.7873215Z               "line": 30
2026-06-15T10:02:42.7873294Z             }
2026-06-15T10:02:42.7873380Z           ]
2026-06-15T10:02:42.7873466Z         },
2026-06-15T10:02:42.7873558Z         "unit": {
2026-06-15T10:02:42.7873647Z           "complete": true,
2026-06-15T10:02:42.7873724Z           "evidence": [
2026-06-15T10:02:42.7873815Z             {
2026-06-15T10:02:42.7873934Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7874029Z               "line": 1453
2026-06-15T10:02:42.7874111Z             },
2026-06-15T10:02:42.7874193Z             {
2026-06-15T10:02:42.7874310Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7874404Z               "line": 1478
2026-06-15T10:02:42.7874491Z             },
2026-06-15T10:02:42.7874566Z             {
2026-06-15T10:02:42.7874688Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7874774Z               "line": 1495
2026-06-15T10:02:42.7874851Z             },
2026-06-15T10:02:42.7874937Z             {
2026-06-15T10:02:42.7875055Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7875152Z               "line": 1538
2026-06-15T10:02:42.7875228Z             }
2026-06-15T10:02:42.7875308Z           ]
2026-06-15T10:02:42.7875389Z         }
2026-06-15T10:02:42.7875471Z       }
2026-06-15T10:02:42.7875562Z     },
2026-06-15T10:02:42.7875637Z     {
2026-06-15T10:02:42.7875767Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
2026-06-15T10:02:42.7878393Z       "title": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).",
2026-06-15T10:02:42.7878516Z       "requiredStages": [
2026-06-15T10:02:42.7878598Z         "doc",
2026-06-15T10:02:42.7878689Z         "impl",
2026-06-15T10:02:42.7878769Z         "unit",
2026-06-15T10:02:42.7878859Z         "int"
2026-06-15T10:02:42.7879022Z       ],
2026-06-15T10:02:42.7879107Z       "stages": {
2026-06-15T10:02:42.7879193Z         "doc": {
2026-06-15T10:02:42.7879285Z           "complete": true,
2026-06-15T10:02:42.7879375Z           "evidence": [
2026-06-15T10:02:42.7879469Z             {
2026-06-15T10:02:42.7879569Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T10:02:42.7879650Z               "line": 295
2026-06-15T10:02:42.7879867Z             }
2026-06-15T10:02:42.7879948Z           ]
2026-06-15T10:02:42.7880031Z         },
2026-06-15T10:02:42.7880119Z         "impl": {
2026-06-15T10:02:42.7880302Z           "complete": true,
2026-06-15T10:02:42.7880402Z           "evidence": [
2026-06-15T10:02:42.7880482Z             {
2026-06-15T10:02:42.7880602Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T10:02:42.7880688Z               "line": 108
2026-06-15T10:02:42.7880763Z             },
2026-06-15T10:02:42.7880845Z             {
2026-06-15T10:02:42.7880969Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.7881064Z               "line": 794
2026-06-15T10:02:42.7881145Z             },
2026-06-15T10:02:42.7881236Z             {
2026-06-15T10:02:42.7881355Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.7881436Z               "line": 994
2026-06-15T10:02:42.7881518Z             },
2026-06-15T10:02:42.7881599Z             {
2026-06-15T10:02:42.7881717Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7881809Z               "line": 23
2026-06-15T10:02:42.7881900Z             },
2026-06-15T10:02:42.7881993Z             {
2026-06-15T10:02:42.7882109Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7882210Z               "line": 113
2026-06-15T10:02:42.7882289Z             },
2026-06-15T10:02:42.7882379Z             {
2026-06-15T10:02:42.7882493Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7882588Z               "line": 158
2026-06-15T10:02:42.7882677Z             },
2026-06-15T10:02:42.7882758Z             {
2026-06-15T10:02:42.7882878Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7885698Z               "line": 215
2026-06-15T10:02:42.7885807Z             },
2026-06-15T10:02:42.7885882Z             {
2026-06-15T10:02:42.7886027Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7886117Z               "line": 247
2026-06-15T10:02:42.7886211Z             },
2026-06-15T10:02:42.7886293Z             {
2026-06-15T10:02:42.7886417Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7886516Z               "line": 261
2026-06-15T10:02:42.7886593Z             },
2026-06-15T10:02:42.7886671Z             {
2026-06-15T10:02:42.7886789Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7886870Z               "line": 306
2026-06-15T10:02:42.7886942Z             },
2026-06-15T10:02:42.7887023Z             {
2026-06-15T10:02:42.7887142Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7887223Z               "line": 333
2026-06-15T10:02:42.7887305Z             },
2026-06-15T10:02:42.7887394Z             {
2026-06-15T10:02:42.7887509Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7887596Z               "line": 345
2026-06-15T10:02:42.7887681Z             },
2026-06-15T10:02:42.7887756Z             {
2026-06-15T10:02:42.7887875Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7887961Z               "line": 359
2026-06-15T10:02:42.7888056Z             },
2026-06-15T10:02:42.7888132Z             {
2026-06-15T10:02:42.7888252Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7888343Z               "line": 386
2026-06-15T10:02:42.7888433Z             },
2026-06-15T10:02:42.7888523Z             {
2026-06-15T10:02:42.7888643Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7888738Z               "line": 629
2026-06-15T10:02:42.7888819Z             },
2026-06-15T10:02:42.7888901Z             {
2026-06-15T10:02:42.7889105Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7889197Z               "line": 958
2026-06-15T10:02:42.7889287Z             },
2026-06-15T10:02:42.7889363Z             {
2026-06-15T10:02:42.7889482Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.7889706Z               "line": 178
2026-06-15T10:02:42.7889787Z             },
2026-06-15T10:02:42.7889874Z             {
2026-06-15T10:02:42.7889996Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.7890181Z               "line": 590
2026-06-15T10:02:42.7890262Z             },
2026-06-15T10:02:42.7890351Z             {
2026-06-15T10:02:42.7890466Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.7890561Z               "line": 662
2026-06-15T10:02:42.7890637Z             },
2026-06-15T10:02:42.7890727Z             {
2026-06-15T10:02:42.7890843Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.7890924Z               "line": 674
2026-06-15T10:02:42.7891003Z             },
2026-06-15T10:02:42.7891075Z             {
2026-06-15T10:02:42.7891186Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.7891281Z               "line": 1084
2026-06-15T10:02:42.7891361Z             },
2026-06-15T10:02:42.7891453Z             {
2026-06-15T10:02:42.7891562Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7891652Z               "line": 181
2026-06-15T10:02:42.7891734Z             },
2026-06-15T10:02:42.7891820Z             {
2026-06-15T10:02:42.7891934Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7892029Z               "line": 223
2026-06-15T10:02:42.7892116Z             },
2026-06-15T10:02:42.7892196Z             {
2026-06-15T10:02:42.7892315Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7892398Z               "line": 234
2026-06-15T10:02:42.7892488Z             },
2026-06-15T10:02:42.7892563Z             {
2026-06-15T10:02:42.7892684Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7892779Z               "line": 260
2026-06-15T10:02:42.7892858Z             },
2026-06-15T10:02:42.7892944Z             {
2026-06-15T10:02:42.7893063Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T10:02:42.7893166Z               "line": 56
2026-06-15T10:02:42.7893246Z             },
2026-06-15T10:02:42.7893328Z             {
2026-06-15T10:02:42.7893438Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T10:02:42.7893537Z               "line": 188
2026-06-15T10:02:42.7893623Z             },
2026-06-15T10:02:42.7893701Z             {
2026-06-15T10:02:42.7893820Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-15T10:02:42.7893919Z               "line": 63
2026-06-15T10:02:42.7893996Z             },
2026-06-15T10:02:42.7894077Z             {
2026-06-15T10:02:42.7894190Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.7894291Z               "line": 258
2026-06-15T10:02:42.7894368Z             },
2026-06-15T10:02:42.7894458Z             {
2026-06-15T10:02:42.7894572Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.7894659Z               "line": 424
2026-06-15T10:02:42.7894739Z             },
2026-06-15T10:02:42.7894820Z             {
2026-06-15T10:02:42.7894931Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.7895017Z               "line": 1745
2026-06-15T10:02:42.7895110Z             }
2026-06-15T10:02:42.7895197Z           ]
2026-06-15T10:02:42.7895269Z         },
2026-06-15T10:02:42.7895350Z         "int": {
2026-06-15T10:02:42.7895449Z           "complete": true,
2026-06-15T10:02:42.7895538Z           "evidence": [
2026-06-15T10:02:42.7895615Z             {
2026-06-15T10:02:42.7895732Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T10:02:42.7895827Z               "line": 57
2026-06-15T10:02:42.7895904Z             },
2026-06-15T10:02:42.7895986Z             {
2026-06-15T10:02:42.7896099Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-15T10:02:42.7896190Z               "line": 41
2026-06-15T10:02:42.7896272Z             }
2026-06-15T10:02:42.7896362Z           ]
2026-06-15T10:02:42.7896452Z         },
2026-06-15T10:02:42.7896534Z         "unit": {
2026-06-15T10:02:42.7896710Z           "complete": true,
2026-06-15T10:02:42.7896795Z           "evidence": [
2026-06-15T10:02:42.7896878Z             {
2026-06-15T10:02:42.7897062Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T10:02:42.7897148Z               "line": 532
2026-06-15T10:02:42.7897235Z             },
2026-06-15T10:02:42.7897315Z             {
2026-06-15T10:02:42.7897439Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T10:02:42.7897522Z               "line": 755
2026-06-15T10:02:42.7897611Z             },
2026-06-15T10:02:42.7897687Z             {
2026-06-15T10:02:42.7897807Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7897902Z               "line": 1027
2026-06-15T10:02:42.7897978Z             },
2026-06-15T10:02:42.7898055Z             {
2026-06-15T10:02:42.7898170Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7898264Z               "line": 1061
2026-06-15T10:02:42.7898354Z             },
2026-06-15T10:02:42.7898435Z             {
2026-06-15T10:02:42.7898550Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7898635Z               "line": 1103
2026-06-15T10:02:42.7898725Z             },
2026-06-15T10:02:42.7898798Z             {
2026-06-15T10:02:42.7898912Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7899093Z               "line": 1175
2026-06-15T10:02:42.7899184Z             },
2026-06-15T10:02:42.7899265Z             {
2026-06-15T10:02:42.7899384Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7899475Z               "line": 1188
2026-06-15T10:02:42.7899556Z             },
2026-06-15T10:02:42.7899636Z             {
2026-06-15T10:02:42.7899757Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7899851Z               "line": 1211
2026-06-15T10:02:42.7899932Z             },
2026-06-15T10:02:42.7900013Z             {
2026-06-15T10:02:42.7900133Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7900227Z               "line": 1237
2026-06-15T10:02:42.7900318Z             },
2026-06-15T10:02:42.7900401Z             {
2026-06-15T10:02:42.7900518Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7900608Z               "line": 1251
2026-06-15T10:02:42.7900689Z             },
2026-06-15T10:02:42.7900770Z             {
2026-06-15T10:02:42.7900878Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7900977Z               "line": 1275
2026-06-15T10:02:42.7901063Z             },
2026-06-15T10:02:42.7901141Z             {
2026-06-15T10:02:42.7901268Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7901345Z               "line": 1407
2026-06-15T10:02:42.7901427Z             },
2026-06-15T10:02:42.7901517Z             {
2026-06-15T10:02:42.7901635Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7901737Z               "line": 1583
2026-06-15T10:02:42.7901813Z             },
2026-06-15T10:02:42.7901907Z             {
2026-06-15T10:02:42.7902013Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7902112Z               "line": 1638
2026-06-15T10:02:42.7902189Z             },
2026-06-15T10:02:42.7902284Z             {
2026-06-15T10:02:42.7902404Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7902494Z               "line": 1684
2026-06-15T10:02:42.7902585Z             },
2026-06-15T10:02:42.7902667Z             {
2026-06-15T10:02:42.7902779Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7902870Z               "line": 1729
2026-06-15T10:02:42.7902953Z             },
2026-06-15T10:02:42.7903043Z             {
2026-06-15T10:02:42.7903152Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7903244Z               "line": 1773
2026-06-15T10:02:42.7903325Z             },
2026-06-15T10:02:42.7903405Z             {
2026-06-15T10:02:42.7903623Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.7903717Z               "line": 1815
2026-06-15T10:02:42.7903926Z             },
2026-06-15T10:02:42.7904003Z             {
2026-06-15T10:02:42.7904121Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.7904212Z               "line": 1418
2026-06-15T10:02:42.7904303Z             },
2026-06-15T10:02:42.7904375Z             {
2026-06-15T10:02:42.7904493Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T10:02:42.7904585Z               "line": 217
2026-06-15T10:02:42.7904660Z             },
2026-06-15T10:02:42.7904736Z             {
2026-06-15T10:02:42.7904846Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T10:02:42.7904942Z               "line": 233
2026-06-15T10:02:42.7905033Z             },
2026-06-15T10:02:42.7905108Z             {
2026-06-15T10:02:42.7905229Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T10:02:42.7905318Z               "line": 254
2026-06-15T10:02:42.7905394Z             },
2026-06-15T10:02:42.7905466Z             {
2026-06-15T10:02:42.7905586Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T10:02:42.7905685Z               "line": 265
2026-06-15T10:02:42.7905762Z             },
2026-06-15T10:02:42.7905839Z             {
2026-06-15T10:02:42.7905952Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T10:02:42.7906042Z               "line": 278
2026-06-15T10:02:42.7906133Z             },
2026-06-15T10:02:42.7906223Z             {
2026-06-15T10:02:42.7906335Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T10:02:42.7906415Z               "line": 289
2026-06-15T10:02:42.7906507Z             },
2026-06-15T10:02:42.7906584Z             {
2026-06-15T10:02:42.7906707Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T10:02:42.7906788Z               "line": 301
2026-06-15T10:02:42.7906879Z             },
2026-06-15T10:02:42.7906964Z             {
2026-06-15T10:02:42.7907074Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T10:02:42.7907156Z               "line": 312
2026-06-15T10:02:42.7907237Z             },
2026-06-15T10:02:42.7907317Z             {
2026-06-15T10:02:42.7907418Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T10:02:42.7907504Z               "line": 323
2026-06-15T10:02:42.7907594Z             },
2026-06-15T10:02:42.7907675Z             {
2026-06-15T10:02:42.7907791Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T10:02:42.7907880Z               "line": 332
2026-06-15T10:02:42.7907966Z             },
2026-06-15T10:02:42.7908053Z             {
2026-06-15T10:02:42.7908166Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T10:02:42.7908262Z               "line": 342
2026-06-15T10:02:42.7908343Z             },
2026-06-15T10:02:42.7908435Z             {
2026-06-15T10:02:42.7908547Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-15T10:02:42.7908643Z               "line": 358
2026-06-15T10:02:42.7908730Z             },
2026-06-15T10:02:42.7908810Z             {
2026-06-15T10:02:42.7909033Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.7909120Z               "line": 708
2026-06-15T10:02:42.7909210Z             },
2026-06-15T10:02:42.7909290Z             {
2026-06-15T10:02:42.7909406Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.7909505Z               "line": 744
2026-06-15T10:02:42.7909581Z             },
2026-06-15T10:02:42.7909668Z             {
2026-06-15T10:02:42.7909782Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.7909872Z               "line": 966
2026-06-15T10:02:42.7909959Z             },
2026-06-15T10:02:42.7910049Z             {
2026-06-15T10:02:42.7910168Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T10:02:42.7910253Z               "line": 143
2026-06-15T10:02:42.7910345Z             },
2026-06-15T10:02:42.7910530Z             {
2026-06-15T10:02:42.7910646Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T10:02:42.7910745Z               "line": 222
2026-06-15T10:02:42.7910927Z             },
2026-06-15T10:02:42.7911008Z             {
2026-06-15T10:02:42.7911121Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-15T10:02:42.7911216Z               "line": 291
2026-06-15T10:02:42.7911297Z             },
2026-06-15T10:02:42.7911382Z             {
2026-06-15T10:02:42.7911495Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-15T10:02:42.7911590Z               "line": 17
2026-06-15T10:02:42.7911677Z             },
2026-06-15T10:02:42.7911757Z             {
2026-06-15T10:02:42.7911876Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-15T10:02:42.7911968Z               "line": 104
2026-06-15T10:02:42.7912053Z             }
2026-06-15T10:02:42.7912133Z           ]
2026-06-15T10:02:42.7912215Z         }
2026-06-15T10:02:42.7912311Z       }
2026-06-15T10:02:42.7912391Z     },
2026-06-15T10:02:42.7912467Z     {
2026-06-15T10:02:42.7912578Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-15T10:02:42.7912758Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-15T10:02:42.7912854Z       "requiredStages": [
2026-06-15T10:02:42.7912936Z         "impl",
2026-06-15T10:02:42.7913016Z         "unit"
2026-06-15T10:02:42.7913092Z       ],
2026-06-15T10:02:42.7913184Z       "stages": {
2026-06-15T10:02:42.7913260Z         "doc": {
2026-06-15T10:02:42.7913354Z           "complete": false,
2026-06-15T10:02:42.7913435Z           "evidence": []
2026-06-15T10:02:42.7913518Z         },
2026-06-15T10:02:42.7913608Z         "impl": {
2026-06-15T10:02:42.7913703Z           "complete": true,
2026-06-15T10:02:42.7913799Z           "evidence": [
2026-06-15T10:02:42.7913875Z             {
2026-06-15T10:02:42.7913997Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.7914083Z               "line": 168
2026-06-15T10:02:42.7914173Z             },
2026-06-15T10:02:42.7914249Z             {
2026-06-15T10:02:42.7914366Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T10:02:42.7914462Z               "line": 18
2026-06-15T10:02:42.7914539Z             },
2026-06-15T10:02:42.7914625Z             {
2026-06-15T10:02:42.7914734Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T10:02:42.7914825Z               "line": 100
2026-06-15T10:02:42.7914911Z             }
2026-06-15T10:02:42.7914995Z           ]
2026-06-15T10:02:42.7915072Z         },
2026-06-15T10:02:42.7915150Z         "int": {
2026-06-15T10:02:42.7915245Z           "complete": false,
2026-06-15T10:02:42.7915334Z           "evidence": []
2026-06-15T10:02:42.7915416Z         },
2026-06-15T10:02:42.7915512Z         "unit": {
2026-06-15T10:02:42.7915602Z           "complete": true,
2026-06-15T10:02:42.7915697Z           "evidence": [
2026-06-15T10:02:42.7915770Z             {
2026-06-15T10:02:42.7915892Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.7915988Z               "line": 733
2026-06-15T10:02:42.7916079Z             },
2026-06-15T10:02:42.7916170Z             {
2026-06-15T10:02:42.7916283Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T10:02:42.7916380Z               "line": 161
2026-06-15T10:02:42.7916456Z             },
2026-06-15T10:02:42.7916545Z             {
2026-06-15T10:02:42.7916649Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T10:02:42.7916740Z               "line": 233
2026-06-15T10:02:42.7916830Z             }
2026-06-15T10:02:42.7916914Z           ]
2026-06-15T10:02:42.7917005Z         }
2026-06-15T10:02:42.7917082Z       }
2026-06-15T10:02:42.7917163Z     },
2026-06-15T10:02:42.7917243Z     {
2026-06-15T10:02:42.7917363Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-15T10:02:42.7917792Z       "title": "Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)",
2026-06-15T10:02:42.7917969Z       "requiredStages": [
2026-06-15T10:02:42.7918059Z         "impl",
2026-06-15T10:02:42.7918135Z         "unit"
2026-06-15T10:02:42.7918293Z       ],
2026-06-15T10:02:42.7918383Z       "stages": {
2026-06-15T10:02:42.7918455Z         "doc": {
2026-06-15T10:02:42.7918555Z           "complete": true,
2026-06-15T10:02:42.7918632Z           "evidence": [
2026-06-15T10:02:42.7918731Z             {
2026-06-15T10:02:42.7918831Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T10:02:42.7918923Z               "line": 220
2026-06-15T10:02:42.7919083Z             }
2026-06-15T10:02:42.7919165Z           ]
2026-06-15T10:02:42.7919252Z         },
2026-06-15T10:02:42.7919356Z         "impl": {
2026-06-15T10:02:42.7919450Z           "complete": true,
2026-06-15T10:02:42.7919530Z           "evidence": [
2026-06-15T10:02:42.7919622Z             {
2026-06-15T10:02:42.7919746Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.7919840Z               "line": 305
2026-06-15T10:02:42.7919927Z             },
2026-06-15T10:02:42.7920008Z             {
2026-06-15T10:02:42.7920122Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T10:02:42.7920213Z               "line": 257
2026-06-15T10:02:42.7920299Z             },
2026-06-15T10:02:42.7920390Z             {
2026-06-15T10:02:42.7920509Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T10:02:42.7920609Z               "line": 405
2026-06-15T10:02:42.7920685Z             },
2026-06-15T10:02:42.7920775Z             {
2026-06-15T10:02:42.7920886Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T10:02:42.7920985Z               "line": 77
2026-06-15T10:02:42.7921062Z             }
2026-06-15T10:02:42.7921143Z           ]
2026-06-15T10:02:42.7921225Z         },
2026-06-15T10:02:42.7921300Z         "int": {
2026-06-15T10:02:42.7921381Z           "complete": false,
2026-06-15T10:02:42.7921472Z           "evidence": []
2026-06-15T10:02:42.7921559Z         },
2026-06-15T10:02:42.7921638Z         "unit": {
2026-06-15T10:02:42.7921728Z           "complete": true,
2026-06-15T10:02:42.7921823Z           "evidence": [
2026-06-15T10:02:42.7921904Z             {
2026-06-15T10:02:42.7922031Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T10:02:42.7922121Z               "line": 478
2026-06-15T10:02:42.7922208Z             },
2026-06-15T10:02:42.7922298Z             {
2026-06-15T10:02:42.7922412Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T10:02:42.7922503Z               "line": 516
2026-06-15T10:02:42.7922584Z             },
2026-06-15T10:02:42.7922675Z             {
2026-06-15T10:02:42.7922790Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T10:02:42.7922885Z               "line": 166
2026-06-15T10:02:42.7922975Z             }
2026-06-15T10:02:42.7923046Z           ]
2026-06-15T10:02:42.7923133Z         }
2026-06-15T10:02:42.7923214Z       }
2026-06-15T10:02:42.7923290Z     },
2026-06-15T10:02:42.7923381Z     {
2026-06-15T10:02:42.7923505Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-15T10:02:42.7924054Z       "title": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)",
2026-06-15T10:02:42.7924158Z       "requiredStages": [
2026-06-15T10:02:42.7924253Z         "impl",
2026-06-15T10:02:42.7924335Z         "unit"
2026-06-15T10:02:42.7924421Z       ],
2026-06-15T10:02:42.7924515Z       "stages": {
2026-06-15T10:02:42.7924595Z         "doc": {
2026-06-15T10:02:42.7924695Z           "complete": false,
2026-06-15T10:02:42.7924790Z           "evidence": []
2026-06-15T10:02:42.7924879Z         },
2026-06-15T10:02:42.7924960Z         "impl": {
2026-06-15T10:02:42.7925055Z           "complete": true,
2026-06-15T10:02:42.7925142Z           "evidence": [
2026-06-15T10:02:42.7925217Z             {
2026-06-15T10:02:42.7925337Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T10:02:42.7925523Z               "line": 22
2026-06-15T10:02:42.7925613Z             },
2026-06-15T10:02:42.7925780Z             {
2026-06-15T10:02:42.7925899Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T10:02:42.7925996Z               "line": 487
2026-06-15T10:02:42.7926072Z             },
2026-06-15T10:02:42.7926148Z             {
2026-06-15T10:02:42.7926267Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T10:02:42.7926363Z               "line": 17
2026-06-15T10:02:42.7926452Z             },
2026-06-15T10:02:42.7926533Z             {
2026-06-15T10:02:42.7926649Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T10:02:42.7926734Z               "line": 147
2026-06-15T10:02:42.7926820Z             },
2026-06-15T10:02:42.7926896Z             {
2026-06-15T10:02:42.7927031Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.7927119Z               "line": 226
2026-06-15T10:02:42.7927214Z             },
2026-06-15T10:02:42.7927300Z             {
2026-06-15T10:02:42.7927413Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.7927508Z               "line": 251
2026-06-15T10:02:42.7927580Z             },
2026-06-15T10:02:42.7927661Z             {
2026-06-15T10:02:42.7927784Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.7927880Z               "line": 277
2026-06-15T10:02:42.7927962Z             },
2026-06-15T10:02:42.7928047Z             {
2026-06-15T10:02:42.7928165Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T10:02:42.7928248Z               "line": 124
2026-06-15T10:02:42.7928333Z             },
2026-06-15T10:02:42.7928413Z             {
2026-06-15T10:02:42.7928534Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T10:02:42.7928629Z               "line": 224
2026-06-15T10:02:42.7928714Z             }
2026-06-15T10:02:42.7928805Z           ]
2026-06-15T10:02:42.7928882Z         },
2026-06-15T10:02:42.7929043Z         "int": {
2026-06-15T10:02:42.7929138Z           "complete": false,
2026-06-15T10:02:42.7929235Z           "evidence": []
2026-06-15T10:02:42.7929329Z         },
2026-06-15T10:02:42.7929410Z         "unit": {
2026-06-15T10:02:42.7929507Z           "complete": true,
2026-06-15T10:02:42.7929597Z           "evidence": [
2026-06-15T10:02:42.7929682Z             {
2026-06-15T10:02:42.7929803Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T10:02:42.7929902Z               "line": 63
2026-06-15T10:02:42.7929991Z             },
2026-06-15T10:02:42.7930071Z             {
2026-06-15T10:02:42.7930196Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T10:02:42.7930287Z               "line": 73
2026-06-15T10:02:42.7930377Z             },
2026-06-15T10:02:42.7930468Z             {
2026-06-15T10:02:42.7930578Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-15T10:02:42.7930673Z               "line": 85
2026-06-15T10:02:42.7930754Z             },
2026-06-15T10:02:42.7930845Z             {
2026-06-15T10:02:42.7930959Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T10:02:42.7931059Z               "line": 346
2026-06-15T10:02:42.7931151Z             },
2026-06-15T10:02:42.7931231Z             {
2026-06-15T10:02:42.7931359Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T10:02:42.7931451Z               "line": 281
2026-06-15T10:02:42.7931531Z             },
2026-06-15T10:02:42.7931612Z             {
2026-06-15T10:02:42.7931732Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T10:02:42.7931827Z               "line": 322
2026-06-15T10:02:42.7931908Z             },
2026-06-15T10:02:42.7931998Z             {
2026-06-15T10:02:42.7932119Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-15T10:02:42.7932217Z               "line": 360
2026-06-15T10:02:42.7932298Z             },
2026-06-15T10:02:42.7932379Z             {
2026-06-15T10:02:42.7932605Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.7932696Z               "line": 688
2026-06-15T10:02:42.7932783Z             },
2026-06-15T10:02:42.7932967Z             {
2026-06-15T10:02:42.7933093Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T10:02:42.7933182Z               "line": 397
2026-06-15T10:02:42.7933277Z             },
2026-06-15T10:02:42.7933360Z             {
2026-06-15T10:02:42.7933478Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T10:02:42.7933573Z               "line": 440
2026-06-15T10:02:42.7933650Z             }
2026-06-15T10:02:42.7933741Z           ]
2026-06-15T10:02:42.7933817Z         }
2026-06-15T10:02:42.7933911Z       }
2026-06-15T10:02:42.7933999Z     },
2026-06-15T10:02:42.7934074Z     {
2026-06-15T10:02:42.7934189Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-15T10:02:42.7934408Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-15T10:02:42.7934508Z       "requiredStages": [
2026-06-15T10:02:42.7934594Z         "impl",
2026-06-15T10:02:42.7934690Z         "unit"
2026-06-15T10:02:42.7934779Z       ],
2026-06-15T10:02:42.7934870Z       "stages": {
2026-06-15T10:02:42.7934962Z         "doc": {
2026-06-15T10:02:42.7935057Z           "complete": false,
2026-06-15T10:02:42.7935150Z           "evidence": []
2026-06-15T10:02:42.7935236Z         },
2026-06-15T10:02:42.7935322Z         "impl": {
2026-06-15T10:02:42.7935425Z           "complete": true,
2026-06-15T10:02:42.7935505Z           "evidence": [
2026-06-15T10:02:42.7935597Z             {
2026-06-15T10:02:42.7935712Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T10:02:42.7935815Z               "line": 169
2026-06-15T10:02:42.7935892Z             }
2026-06-15T10:02:42.7935984Z           ]
2026-06-15T10:02:42.7936074Z         },
2026-06-15T10:02:42.7936149Z         "int": {
2026-06-15T10:02:42.7936246Z           "complete": true,
2026-06-15T10:02:42.7936326Z           "evidence": [
2026-06-15T10:02:42.7936417Z             {
2026-06-15T10:02:42.7936526Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-15T10:02:42.7936613Z               "line": 44
2026-06-15T10:02:42.7936708Z             },
2026-06-15T10:02:42.7936793Z             {
2026-06-15T10:02:42.7936909Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-15T10:02:42.7936998Z               "line": 66
2026-06-15T10:02:42.7937088Z             }
2026-06-15T10:02:42.7937166Z           ]
2026-06-15T10:02:42.7937247Z         },
2026-06-15T10:02:42.7937327Z         "unit": {
2026-06-15T10:02:42.7937423Z           "complete": true,
2026-06-15T10:02:42.7937519Z           "evidence": [
2026-06-15T10:02:42.7937596Z             {
2026-06-15T10:02:42.7937708Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T10:02:42.7937798Z               "line": 186
2026-06-15T10:02:42.7937894Z             },
2026-06-15T10:02:42.7937982Z             {
2026-06-15T10:02:42.7938091Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T10:02:42.7938182Z               "line": 238
2026-06-15T10:02:42.7938265Z             },
2026-06-15T10:02:42.7938344Z             {
2026-06-15T10:02:42.7938449Z               "path": "crates/spt-term/src/reader.rs",
2026-06-15T10:02:42.7938536Z               "line": 266
2026-06-15T10:02:42.7938621Z             }
2026-06-15T10:02:42.7938697Z           ]
2026-06-15T10:02:42.7938788Z         }
2026-06-15T10:02:42.7938869Z       }
2026-06-15T10:02:42.7939050Z     },
2026-06-15T10:02:42.7939127Z     {
2026-06-15T10:02:42.7939250Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-15T10:02:42.7939665Z       "title": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)",
2026-06-15T10:02:42.7939762Z       "requiredStages": [
2026-06-15T10:02:42.7939847Z         "impl",
2026-06-15T10:02:42.7939928Z         "unit",
2026-06-15T10:02:42.7940018Z         "int"
2026-06-15T10:02:42.7940110Z       ],
2026-06-15T10:02:42.7940304Z       "stages": {
2026-06-15T10:02:42.7940396Z         "doc": {
2026-06-15T10:02:42.7940481Z           "complete": false,
2026-06-15T10:02:42.7940675Z           "evidence": []
2026-06-15T10:02:42.7940761Z         },
2026-06-15T10:02:42.7940842Z         "impl": {
2026-06-15T10:02:42.7940942Z           "complete": true,
2026-06-15T10:02:42.7941023Z           "evidence": [
2026-06-15T10:02:42.7941105Z             {
2026-06-15T10:02:42.7941223Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.7941319Z               "line": 152
2026-06-15T10:02:42.7941405Z             },
2026-06-15T10:02:42.7941481Z             {
2026-06-15T10:02:42.7941600Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.7941692Z               "line": 176
2026-06-15T10:02:42.7941786Z             },
2026-06-15T10:02:42.7941862Z             {
2026-06-15T10:02:42.7941982Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T10:02:42.7942073Z               "line": 79
2026-06-15T10:02:42.7942158Z             },
2026-06-15T10:02:42.7942239Z             {
2026-06-15T10:02:42.7942345Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T10:02:42.7942444Z               "line": 52
2026-06-15T10:02:42.7942520Z             },
2026-06-15T10:02:42.7942612Z             {
2026-06-15T10:02:42.7942721Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T10:02:42.7942820Z               "line": 164
2026-06-15T10:02:42.7942910Z             },
2026-06-15T10:02:42.7942987Z             {
2026-06-15T10:02:42.7943113Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T10:02:42.7943193Z               "line": 27
2026-06-15T10:02:42.7943285Z             },
2026-06-15T10:02:42.7943371Z             {
2026-06-15T10:02:42.7943485Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T10:02:42.7943575Z               "line": 79
2026-06-15T10:02:42.7943653Z             },
2026-06-15T10:02:42.7943742Z             {
2026-06-15T10:02:42.7943861Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T10:02:42.7943958Z               "line": 102
2026-06-15T10:02:42.7944034Z             },
2026-06-15T10:02:42.7944128Z             {
2026-06-15T10:02:42.7944244Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T10:02:42.7944334Z               "line": 116
2026-06-15T10:02:42.7944410Z             }
2026-06-15T10:02:42.7944501Z           ]
2026-06-15T10:02:42.7944582Z         },
2026-06-15T10:02:42.7944668Z         "int": {
2026-06-15T10:02:42.7944758Z           "complete": true,
2026-06-15T10:02:42.7944854Z           "evidence": [
2026-06-15T10:02:42.7944926Z             {
2026-06-15T10:02:42.7945059Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-15T10:02:42.7945150Z               "line": 38
2026-06-15T10:02:42.7945240Z             }
2026-06-15T10:02:42.7945316Z           ]
2026-06-15T10:02:42.7945402Z         },
2026-06-15T10:02:42.7945493Z         "unit": {
2026-06-15T10:02:42.7945589Z           "complete": true,
2026-06-15T10:02:42.7945678Z           "evidence": [
2026-06-15T10:02:42.7945768Z             {
2026-06-15T10:02:42.7945901Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.7945995Z               "line": 628
2026-06-15T10:02:42.7946085Z             },
2026-06-15T10:02:42.7946171Z             {
2026-06-15T10:02:42.7946277Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T10:02:42.7946370Z               "line": 378
2026-06-15T10:02:42.7946452Z             },
2026-06-15T10:02:42.7946539Z             {
2026-06-15T10:02:42.7946657Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T10:02:42.7946748Z               "line": 124
2026-06-15T10:02:42.7946839Z             },
2026-06-15T10:02:42.7946915Z             {
2026-06-15T10:02:42.7947033Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T10:02:42.7947125Z               "line": 143
2026-06-15T10:02:42.7947211Z             },
2026-06-15T10:02:42.7947373Z             {
2026-06-15T10:02:42.7947483Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T10:02:42.7947581Z               "line": 160
2026-06-15T10:02:42.7947731Z             },
2026-06-15T10:02:42.7947817Z             {
2026-06-15T10:02:42.7947935Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T10:02:42.7948031Z               "line": 187
2026-06-15T10:02:42.7948122Z             },
2026-06-15T10:02:42.7948197Z             {
2026-06-15T10:02:42.7948320Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-15T10:02:42.7948406Z               "line": 206
2026-06-15T10:02:42.7948491Z             },
2026-06-15T10:02:42.7948575Z             {
2026-06-15T10:02:42.7948690Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T10:02:42.7948781Z               "line": 229
2026-06-15T10:02:42.7948871Z             }
2026-06-15T10:02:42.7949033Z           ]
2026-06-15T10:02:42.7949105Z         }
2026-06-15T10:02:42.7949195Z       }
2026-06-15T10:02:42.7949276Z     },
2026-06-15T10:02:42.7951821Z     {
2026-06-15T10:02:42.7951984Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-15T10:02:42.7952633Z       "title": "Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)",
2026-06-15T10:02:42.7952732Z       "requiredStages": [
2026-06-15T10:02:42.7952818Z         "impl",
2026-06-15T10:02:42.7952910Z         "unit"
2026-06-15T10:02:42.7952985Z       ],
2026-06-15T10:02:42.7953066Z       "stages": {
2026-06-15T10:02:42.7953157Z         "doc": {
2026-06-15T10:02:42.7953257Z           "complete": false,
2026-06-15T10:02:42.7953352Z           "evidence": []
2026-06-15T10:02:42.7953427Z         },
2026-06-15T10:02:42.7953508Z         "impl": {
2026-06-15T10:02:42.7953598Z           "complete": true,
2026-06-15T10:02:42.7953692Z           "evidence": [
2026-06-15T10:02:42.7953782Z             {
2026-06-15T10:02:42.7953898Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.7953993Z               "line": 621
2026-06-15T10:02:42.7954082Z             },
2026-06-15T10:02:42.7954160Z             {
2026-06-15T10:02:42.7954274Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.7954360Z               "line": 834
2026-06-15T10:02:42.7954436Z             }
2026-06-15T10:02:42.7954527Z           ]
2026-06-15T10:02:42.7954603Z         },
2026-06-15T10:02:42.7954689Z         "int": {
2026-06-15T10:02:42.7954785Z           "complete": false,
2026-06-15T10:02:42.7954875Z           "evidence": []
2026-06-15T10:02:42.7954960Z         },
2026-06-15T10:02:42.7955041Z         "unit": {
2026-06-15T10:02:42.7955133Z           "complete": true,
2026-06-15T10:02:42.7955228Z           "evidence": [
2026-06-15T10:02:42.7955304Z             {
2026-06-15T10:02:42.7955444Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T10:02:42.7955542Z               "line": 161
2026-06-15T10:02:42.7955624Z             }
2026-06-15T10:02:42.7955700Z           ]
2026-06-15T10:02:42.7955782Z         }
2026-06-15T10:02:42.7955880Z       }
2026-06-15T10:02:42.7955953Z     },
2026-06-15T10:02:42.7956029Z     {
2026-06-15T10:02:42.7956139Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-15T10:02:42.7956332Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-15T10:02:42.7956442Z       "requiredStages": [
2026-06-15T10:02:42.7956531Z         "impl",
2026-06-15T10:02:42.7956621Z         "unit"
2026-06-15T10:02:42.7956707Z       ],
2026-06-15T10:02:42.7956803Z       "stages": {
2026-06-15T10:02:42.7956893Z         "doc": {
2026-06-15T10:02:42.7956993Z           "complete": false,
2026-06-15T10:02:42.7957094Z           "evidence": []
2026-06-15T10:02:42.7957175Z         },
2026-06-15T10:02:42.7957264Z         "impl": {
2026-06-15T10:02:42.7957356Z           "complete": true,
2026-06-15T10:02:42.7957456Z           "evidence": [
2026-06-15T10:02:42.7957671Z             {
2026-06-15T10:02:42.7957789Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.7957971Z               "line": 40
2026-06-15T10:02:42.7958052Z             },
2026-06-15T10:02:42.7958128Z             {
2026-06-15T10:02:42.7958242Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.7958339Z               "line": 103
2026-06-15T10:02:42.7958429Z             },
2026-06-15T10:02:42.7958500Z             {
2026-06-15T10:02:42.7958616Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.7958696Z               "line": 218
2026-06-15T10:02:42.7958790Z             },
2026-06-15T10:02:42.7958861Z             {
2026-06-15T10:02:42.7959042Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.7959126Z               "line": 323
2026-06-15T10:02:42.7959202Z             }
2026-06-15T10:02:42.7959288Z           ]
2026-06-15T10:02:42.7959370Z         },
2026-06-15T10:02:42.7959469Z         "int": {
2026-06-15T10:02:42.7959560Z           "complete": false,
2026-06-15T10:02:42.7959661Z           "evidence": []
2026-06-15T10:02:42.7959751Z         },
2026-06-15T10:02:42.7959846Z         "unit": {
2026-06-15T10:02:42.7959937Z           "complete": true,
2026-06-15T10:02:42.7960027Z           "evidence": [
2026-06-15T10:02:42.7960117Z             {
2026-06-15T10:02:42.7960223Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.7960314Z               "line": 361
2026-06-15T10:02:42.7960399Z             },
2026-06-15T10:02:42.7960480Z             {
2026-06-15T10:02:42.7960596Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.7960680Z               "line": 433
2026-06-15T10:02:42.7960771Z             },
2026-06-15T10:02:42.7960853Z             {
2026-06-15T10:02:42.7960971Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.7961062Z               "line": 496
2026-06-15T10:02:42.7961138Z             },
2026-06-15T10:02:42.7961235Z             {
2026-06-15T10:02:42.7961342Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.7961439Z               "line": 517
2026-06-15T10:02:42.7961521Z             }
2026-06-15T10:02:42.7961601Z           ]
2026-06-15T10:02:42.7961685Z         }
2026-06-15T10:02:42.7961761Z       }
2026-06-15T10:02:42.7961843Z     },
2026-06-15T10:02:42.7961915Z     {
2026-06-15T10:02:42.7962033Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-15T10:02:42.7962153Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-15T10:02:42.7962253Z       "requiredStages": [
2026-06-15T10:02:42.7962348Z         "impl",
2026-06-15T10:02:42.7962429Z         "unit"
2026-06-15T10:02:42.7962507Z       ],
2026-06-15T10:02:42.7962587Z       "stages": {
2026-06-15T10:02:42.7962672Z         "doc": {
2026-06-15T10:02:42.7962763Z           "complete": false,
2026-06-15T10:02:42.7962863Z           "evidence": []
2026-06-15T10:02:42.7962949Z         },
2026-06-15T10:02:42.7963035Z         "impl": {
2026-06-15T10:02:42.7963127Z           "complete": true,
2026-06-15T10:02:42.7963221Z           "evidence": [
2026-06-15T10:02:42.7963306Z             {
2026-06-15T10:02:42.7963427Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.7963526Z               "line": 116
2026-06-15T10:02:42.7963611Z             },
2026-06-15T10:02:42.7963688Z             {
2026-06-15T10:02:42.7963808Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.7963893Z               "line": 211
2026-06-15T10:02:42.7963982Z             }
2026-06-15T10:02:42.7964068Z           ]
2026-06-15T10:02:42.7964144Z         },
2026-06-15T10:02:42.7964224Z         "int": {
2026-06-15T10:02:42.7964313Z           "complete": false,
2026-06-15T10:02:42.7964410Z           "evidence": []
2026-06-15T10:02:42.7964487Z         },
2026-06-15T10:02:42.7964562Z         "unit": {
2026-06-15T10:02:42.7964657Z           "complete": true,
2026-06-15T10:02:42.7964749Z           "evidence": [
2026-06-15T10:02:42.7964967Z             {
2026-06-15T10:02:42.7965082Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.7965173Z               "line": 388
2026-06-15T10:02:42.7965345Z             },
2026-06-15T10:02:42.7965435Z             {
2026-06-15T10:02:42.7965540Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.7965635Z               "line": 469
2026-06-15T10:02:42.7965717Z             }
2026-06-15T10:02:42.7965792Z           ]
2026-06-15T10:02:42.7965878Z         }
2026-06-15T10:02:42.7965960Z       }
2026-06-15T10:02:42.7966055Z     },
2026-06-15T10:02:42.7966131Z     {
2026-06-15T10:02:42.7966250Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-15T10:02:42.7967387Z       "title": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)",
2026-06-15T10:02:42.7967558Z       "requiredStages": [
2026-06-15T10:02:42.7967640Z         "impl",
2026-06-15T10:02:42.7967721Z         "unit"
2026-06-15T10:02:42.7967819Z       ],
2026-06-15T10:02:42.7967907Z       "stages": {
2026-06-15T10:02:42.7967988Z         "doc": {
2026-06-15T10:02:42.7968087Z           "complete": true,
2026-06-15T10:02:42.7968168Z           "evidence": [
2026-06-15T10:02:42.7968245Z             {
2026-06-15T10:02:42.7968359Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T10:02:42.7968449Z               "line": 206
2026-06-15T10:02:42.7968541Z             }
2026-06-15T10:02:42.7968617Z           ]
2026-06-15T10:02:42.7968706Z         },
2026-06-15T10:02:42.7968788Z         "impl": {
2026-06-15T10:02:42.7968880Z           "complete": true,
2026-06-15T10:02:42.7969055Z           "evidence": [
2026-06-15T10:02:42.7969146Z             {
2026-06-15T10:02:42.7969266Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7969364Z               "line": 593
2026-06-15T10:02:42.7969454Z             },
2026-06-15T10:02:42.7969531Z             {
2026-06-15T10:02:42.7969658Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7969748Z               "line": 685
2026-06-15T10:02:42.7969834Z             },
2026-06-15T10:02:42.7969915Z             {
2026-06-15T10:02:42.7970038Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.7970134Z               "line": 183
2026-06-15T10:02:42.7970216Z             }
2026-06-15T10:02:42.7970288Z           ]
2026-06-15T10:02:42.7970367Z         },
2026-06-15T10:02:42.7970459Z         "int": {
2026-06-15T10:02:42.7970554Z           "complete": false,
2026-06-15T10:02:42.7970635Z           "evidence": []
2026-06-15T10:02:42.7970715Z         },
2026-06-15T10:02:42.7970793Z         "unit": {
2026-06-15T10:02:42.7970888Z           "complete": true,
2026-06-15T10:02:42.7970978Z           "evidence": [
2026-06-15T10:02:42.7971059Z             {
2026-06-15T10:02:42.7971179Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.7971265Z               "line": 734
2026-06-15T10:02:42.7971360Z             },
2026-06-15T10:02:42.7971432Z             {
2026-06-15T10:02:42.7971573Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T10:02:42.7971665Z               "line": 44
2026-06-15T10:02:42.7971752Z             },
2026-06-15T10:02:42.7971842Z             {
2026-06-15T10:02:42.7971946Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T10:02:42.7972038Z               "line": 57
2026-06-15T10:02:42.7972119Z             },
2026-06-15T10:02:42.7972194Z             {
2026-06-15T10:02:42.7972326Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-15T10:02:42.7972422Z               "line": 54
2026-06-15T10:02:42.7972513Z             }
2026-06-15T10:02:42.7972588Z           ]
2026-06-15T10:02:42.7972679Z         }
2026-06-15T10:02:42.7972752Z       }
2026-06-15T10:02:42.7972946Z     },
2026-06-15T10:02:42.7973023Z     {
2026-06-15T10:02:42.7973142Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-15T10:02:42.7973452Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-15T10:02:42.7973551Z       "requiredStages": [
2026-06-15T10:02:42.7973638Z         "impl",
2026-06-15T10:02:42.7973715Z         "unit"
2026-06-15T10:02:42.7973805Z       ],
2026-06-15T10:02:42.7973895Z       "stages": {
2026-06-15T10:02:42.7973982Z         "doc": {
2026-06-15T10:02:42.7974082Z           "complete": false,
2026-06-15T10:02:42.7974176Z           "evidence": []
2026-06-15T10:02:42.7974258Z         },
2026-06-15T10:02:42.7974336Z         "impl": {
2026-06-15T10:02:42.7974433Z           "complete": true,
2026-06-15T10:02:42.7974519Z           "evidence": [
2026-06-15T10:02:42.7974609Z             {
2026-06-15T10:02:42.7974728Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T10:02:42.7974817Z               "line": 26
2026-06-15T10:02:42.7974917Z             },
2026-06-15T10:02:42.7974994Z             {
2026-06-15T10:02:42.7975113Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T10:02:42.7975212Z               "line": 135
2026-06-15T10:02:42.7975289Z             },
2026-06-15T10:02:42.7975385Z             {
2026-06-15T10:02:42.7975517Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T10:02:42.7975610Z               "line": 26
2026-06-15T10:02:42.7975690Z             },
2026-06-15T10:02:42.7975770Z             {
2026-06-15T10:02:42.7975890Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T10:02:42.7975981Z               "line": 237
2026-06-15T10:02:42.7976071Z             }
2026-06-15T10:02:42.7976156Z           ]
2026-06-15T10:02:42.7976249Z         },
2026-06-15T10:02:42.7976328Z         "int": {
2026-06-15T10:02:42.7976429Z           "complete": false,
2026-06-15T10:02:42.7976515Z           "evidence": []
2026-06-15T10:02:42.7976601Z         },
2026-06-15T10:02:42.7976695Z         "unit": {
2026-06-15T10:02:42.7976791Z           "complete": true,
2026-06-15T10:02:42.7976888Z           "evidence": [
2026-06-15T10:02:42.7976968Z             {
2026-06-15T10:02:42.7977087Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T10:02:42.7977178Z               "line": 161
2026-06-15T10:02:42.7977259Z             },
2026-06-15T10:02:42.7977339Z             {
2026-06-15T10:02:42.7977448Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T10:02:42.7977543Z               "line": 170
2026-06-15T10:02:42.7977618Z             },
2026-06-15T10:02:42.7977713Z             {
2026-06-15T10:02:42.7977813Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T10:02:42.7977909Z               "line": 179
2026-06-15T10:02:42.7977999Z             },
2026-06-15T10:02:42.7978074Z             {
2026-06-15T10:02:42.7978185Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T10:02:42.7978271Z               "line": 190
2026-06-15T10:02:42.7978366Z             },
2026-06-15T10:02:42.7978447Z             {
2026-06-15T10:02:42.7978548Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T10:02:42.7978638Z               "line": 199
2026-06-15T10:02:42.7978713Z             },
2026-06-15T10:02:42.7978806Z             {
2026-06-15T10:02:42.7978914Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T10:02:42.7979096Z               "line": 216
2026-06-15T10:02:42.7979192Z             },
2026-06-15T10:02:42.7979276Z             {
2026-06-15T10:02:42.7979391Z               "path": "crates/spt-live/src/context.rs",
2026-06-15T10:02:42.7979478Z               "line": 242
2026-06-15T10:02:42.7979567Z             },
2026-06-15T10:02:42.7979644Z             {
2026-06-15T10:02:42.7979755Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T10:02:42.7979840Z               "line": 295
2026-06-15T10:02:42.7979919Z             },
2026-06-15T10:02:42.7980010Z             {
2026-06-15T10:02:42.7980223Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T10:02:42.7980317Z               "line": 244
2026-06-15T10:02:42.7980399Z             },
2026-06-15T10:02:42.7980584Z             {
2026-06-15T10:02:42.7980718Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T10:02:42.7980800Z               "line": 265
2026-06-15T10:02:42.7980885Z             },
2026-06-15T10:02:42.7980966Z             {
2026-06-15T10:02:42.7981081Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T10:02:42.7981162Z               "line": 293
2026-06-15T10:02:42.7981251Z             },
2026-06-15T10:02:42.7981334Z             {
2026-06-15T10:02:42.7981453Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T10:02:42.7981543Z               "line": 317
2026-06-15T10:02:42.7981624Z             },
2026-06-15T10:02:42.7981711Z             {
2026-06-15T10:02:42.7981825Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-15T10:02:42.7981929Z               "line": 327
2026-06-15T10:02:42.7982026Z             },
2026-06-15T10:02:42.7982101Z             {
2026-06-15T10:02:42.7982225Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T10:02:42.7982307Z               "line": 540
2026-06-15T10:02:42.7982402Z             }
2026-06-15T10:02:42.7982487Z           ]
2026-06-15T10:02:42.7982573Z         }
2026-06-15T10:02:42.7982660Z       }
2026-06-15T10:02:42.7982745Z     },
2026-06-15T10:02:42.7982829Z     {
2026-06-15T10:02:42.7982953Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-15T10:02:42.7983111Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-15T10:02:42.7983210Z       "requiredStages": [
2026-06-15T10:02:42.7983297Z         "impl",
2026-06-15T10:02:42.7983378Z         "unit"
2026-06-15T10:02:42.7983458Z       ],
2026-06-15T10:02:42.7983544Z       "stages": {
2026-06-15T10:02:42.7983627Z         "doc": {
2026-06-15T10:02:42.7983722Z           "complete": false,
2026-06-15T10:02:42.7983816Z           "evidence": []
2026-06-15T10:02:42.7983917Z         },
2026-06-15T10:02:42.7984007Z         "impl": {
2026-06-15T10:02:42.7984097Z           "complete": true,
2026-06-15T10:02:42.7984193Z           "evidence": [
2026-06-15T10:02:42.7984271Z             {
2026-06-15T10:02:42.7984389Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T10:02:42.7984465Z               "line": 25
2026-06-15T10:02:42.7984552Z             },
2026-06-15T10:02:42.7984637Z             {
2026-06-15T10:02:42.7984751Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T10:02:42.7984832Z               "line": 26
2026-06-15T10:02:42.7984915Z             },
2026-06-15T10:02:42.7985003Z             {
2026-06-15T10:02:42.7985112Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T10:02:42.7985213Z               "line": 159
2026-06-15T10:02:42.7985306Z             }
2026-06-15T10:02:42.7985392Z           ]
2026-06-15T10:02:42.7985472Z         },
2026-06-15T10:02:42.7985549Z         "int": {
2026-06-15T10:02:42.7985649Z           "complete": false,
2026-06-15T10:02:42.7985739Z           "evidence": []
2026-06-15T10:02:42.7985830Z         },
2026-06-15T10:02:42.7985917Z         "unit": {
2026-06-15T10:02:42.7986011Z           "complete": true,
2026-06-15T10:02:42.7986106Z           "evidence": [
2026-06-15T10:02:42.7986188Z             {
2026-06-15T10:02:42.7986302Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T10:02:42.7986392Z               "line": 188
2026-06-15T10:02:42.7986470Z             },
2026-06-15T10:02:42.7986545Z             {
2026-06-15T10:02:42.7986645Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T10:02:42.7986741Z               "line": 240
2026-06-15T10:02:42.7986818Z             },
2026-06-15T10:02:42.7986898Z             {
2026-06-15T10:02:42.7987013Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T10:02:42.7987099Z               "line": 186
2026-06-15T10:02:42.7987180Z             }
2026-06-15T10:02:42.7987255Z           ]
2026-06-15T10:02:42.7987419Z         }
2026-06-15T10:02:42.7987500Z       }
2026-06-15T10:02:42.7987580Z     },
2026-06-15T10:02:42.7987661Z     {
2026-06-15T10:02:42.7987777Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-15T10:02:42.7988012Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-15T10:02:42.7988113Z       "requiredStages": [
2026-06-15T10:02:42.7988202Z         "impl",
2026-06-15T10:02:42.7988277Z         "unit"
2026-06-15T10:02:42.7988363Z       ],
2026-06-15T10:02:42.7988455Z       "stages": {
2026-06-15T10:02:42.7988531Z         "doc": {
2026-06-15T10:02:42.7988625Z           "complete": false,
2026-06-15T10:02:42.7988722Z           "evidence": []
2026-06-15T10:02:42.7988803Z         },
2026-06-15T10:02:42.7988888Z         "impl": {
2026-06-15T10:02:42.7989055Z           "complete": true,
2026-06-15T10:02:42.7989146Z           "evidence": [
2026-06-15T10:02:42.7989226Z             {
2026-06-15T10:02:42.7989346Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T10:02:42.7989441Z               "line": 48
2026-06-15T10:02:42.7989532Z             },
2026-06-15T10:02:42.7989608Z             {
2026-06-15T10:02:42.7989723Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T10:02:42.7989822Z               "line": 55
2026-06-15T10:02:42.7989898Z             },
2026-06-15T10:02:42.7989976Z             {
2026-06-15T10:02:42.7990090Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T10:02:42.7990180Z               "line": 74
2026-06-15T10:02:42.7990257Z             },
2026-06-15T10:02:42.7990343Z             {
2026-06-15T10:02:42.7990461Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T10:02:42.7990551Z               "line": 91
2026-06-15T10:02:42.7990637Z             }
2026-06-15T10:02:42.7990713Z           ]
2026-06-15T10:02:42.7990802Z         },
2026-06-15T10:02:42.7990877Z         "int": {
2026-06-15T10:02:42.7990973Z           "complete": false,
2026-06-15T10:02:42.7991065Z           "evidence": []
2026-06-15T10:02:42.7991154Z         },
2026-06-15T10:02:42.7991240Z         "unit": {
2026-06-15T10:02:42.7991322Z           "complete": true,
2026-06-15T10:02:42.7991408Z           "evidence": [
2026-06-15T10:02:42.7991487Z             {
2026-06-15T10:02:42.7991608Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T10:02:42.7991702Z               "line": 149
2026-06-15T10:02:42.7991783Z             },
2026-06-15T10:02:42.7991874Z             {
2026-06-15T10:02:42.7991989Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T10:02:42.7992070Z               "line": 166
2026-06-15T10:02:42.7992155Z             },
2026-06-15T10:02:42.7992247Z             {
2026-06-15T10:02:42.7992360Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T10:02:42.7992451Z               "line": 176
2026-06-15T10:02:42.7992533Z             },
2026-06-15T10:02:42.7992614Z             {
2026-06-15T10:02:42.7992728Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T10:02:42.7992819Z               "line": 194
2026-06-15T10:02:42.7992915Z             },
2026-06-15T10:02:42.7993004Z             {
2026-06-15T10:02:42.7993119Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T10:02:42.7993220Z               "line": 207
2026-06-15T10:02:42.7993296Z             }
2026-06-15T10:02:42.7993375Z           ]
2026-06-15T10:02:42.7993455Z         }
2026-06-15T10:02:42.7993537Z       }
2026-06-15T10:02:42.7993625Z     },
2026-06-15T10:02:42.7993704Z     {
2026-06-15T10:02:42.7993824Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-15T10:02:42.7994014Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-15T10:02:42.7994109Z       "requiredStages": [
2026-06-15T10:02:42.7994192Z         "impl",
2026-06-15T10:02:42.7994282Z         "unit"
2026-06-15T10:02:42.7994362Z       ],
2026-06-15T10:02:42.7994439Z       "stages": {
2026-06-15T10:02:42.7994530Z         "doc": {
2026-06-15T10:02:42.7994625Z           "complete": false,
2026-06-15T10:02:42.7994840Z           "evidence": []
2026-06-15T10:02:42.7994910Z         },
2026-06-15T10:02:42.7994991Z         "impl": {
2026-06-15T10:02:42.7995088Z           "complete": true,
2026-06-15T10:02:42.7995268Z           "evidence": [
2026-06-15T10:02:42.7995359Z             {
2026-06-15T10:02:42.7995489Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.7995587Z               "line": 416
2026-06-15T10:02:42.7995662Z             },
2026-06-15T10:02:42.7995753Z             {
2026-06-15T10:02:42.7995871Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T10:02:42.7995956Z               "line": 26
2026-06-15T10:02:42.7996047Z             }
2026-06-15T10:02:42.7996119Z           ]
2026-06-15T10:02:42.7996209Z         },
2026-06-15T10:02:42.7996295Z         "int": {
2026-06-15T10:02:42.7996390Z           "complete": false,
2026-06-15T10:02:42.7996481Z           "evidence": []
2026-06-15T10:02:42.7996562Z         },
2026-06-15T10:02:42.7996647Z         "unit": {
2026-06-15T10:02:42.7996749Z           "complete": true,
2026-06-15T10:02:42.7996844Z           "evidence": [
2026-06-15T10:02:42.7996914Z             {
2026-06-15T10:02:42.7997035Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T10:02:42.7997134Z               "line": 150
2026-06-15T10:02:42.7997215Z             },
2026-06-15T10:02:42.7997305Z             {
2026-06-15T10:02:42.7997416Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T10:02:42.7997506Z               "line": 208
2026-06-15T10:02:42.7997587Z             }
2026-06-15T10:02:42.7997669Z           ]
2026-06-15T10:02:42.7997754Z         }
2026-06-15T10:02:42.7997835Z       }
2026-06-15T10:02:42.7997920Z     },
2026-06-15T10:02:42.7997993Z     {
2026-06-15T10:02:42.7998120Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-15T10:02:42.7999509Z       "title": "The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)",
2026-06-15T10:02:42.7999616Z       "requiredStages": [
2026-06-15T10:02:42.7999711Z         "doc",
2026-06-15T10:02:42.7999796Z         "impl",
2026-06-15T10:02:42.7999882Z         "unit"
2026-06-15T10:02:42.7999959Z       ],
2026-06-15T10:02:42.8000049Z       "stages": {
2026-06-15T10:02:42.8000130Z         "doc": {
2026-06-15T10:02:42.8000226Z           "complete": true,
2026-06-15T10:02:42.8000326Z           "evidence": [
2026-06-15T10:02:42.8000396Z             {
2026-06-15T10:02:42.8000512Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T10:02:42.8000607Z               "line": 214
2026-06-15T10:02:42.8000697Z             }
2026-06-15T10:02:42.8000787Z           ]
2026-06-15T10:02:42.8000865Z         },
2026-06-15T10:02:42.8000956Z         "impl": {
2026-06-15T10:02:42.8001049Z           "complete": true,
2026-06-15T10:02:42.8001149Z           "evidence": [
2026-06-15T10:02:42.8001225Z             {
2026-06-15T10:02:42.8001362Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.8001456Z               "line": 54
2026-06-15T10:02:42.8001547Z             },
2026-06-15T10:02:42.8001634Z             {
2026-06-15T10:02:42.8001747Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.8001839Z               "line": 511
2026-06-15T10:02:42.8001911Z             },
2026-06-15T10:02:42.8001996Z             {
2026-06-15T10:02:42.8002124Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T10:02:42.8002215Z               "line": 36
2026-06-15T10:02:42.8002292Z             },
2026-06-15T10:02:42.8002376Z             {
2026-06-15T10:02:42.8002492Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T10:02:42.8002591Z               "line": 59
2026-06-15T10:02:42.8002668Z             },
2026-06-15T10:02:42.8002859Z             {
2026-06-15T10:02:42.8002974Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T10:02:42.8003068Z               "line": 83
2026-06-15T10:02:42.8003240Z             },
2026-06-15T10:02:42.8003326Z             {
2026-06-15T10:02:42.8003446Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T10:02:42.8003536Z               "line": 140
2026-06-15T10:02:42.8003622Z             },
2026-06-15T10:02:42.8003698Z             {
2026-06-15T10:02:42.8003818Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T10:02:42.8003911Z               "line": 159
2026-06-15T10:02:42.8003997Z             },
2026-06-15T10:02:42.8004083Z             {
2026-06-15T10:02:42.8004194Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T10:02:42.8004288Z               "line": 384
2026-06-15T10:02:42.8004364Z             },
2026-06-15T10:02:42.8004451Z             {
2026-06-15T10:02:42.8004569Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T10:02:42.8004669Z               "line": 526
2026-06-15T10:02:42.8004747Z             },
2026-06-15T10:02:42.8004822Z             {
2026-06-15T10:02:42.8004955Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T10:02:42.8005032Z               "line": 572
2026-06-15T10:02:42.8005123Z             },
2026-06-15T10:02:42.8005199Z             {
2026-06-15T10:02:42.8005318Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8005410Z               "line": 300
2026-06-15T10:02:42.8005485Z             },
2026-06-15T10:02:42.8005575Z             {
2026-06-15T10:02:42.8005681Z               "path": "crates/spt/src/main.rs",
2026-06-15T10:02:42.8005776Z               "line": 41
2026-06-15T10:02:42.8005861Z             }
2026-06-15T10:02:42.8005938Z           ]
2026-06-15T10:02:42.8006016Z         },
2026-06-15T10:02:42.8006095Z         "int": {
2026-06-15T10:02:42.8006190Z           "complete": false,
2026-06-15T10:02:42.8006280Z           "evidence": []
2026-06-15T10:02:42.8006375Z         },
2026-06-15T10:02:42.8006464Z         "unit": {
2026-06-15T10:02:42.8006558Z           "complete": true,
2026-06-15T10:02:42.8006660Z           "evidence": [
2026-06-15T10:02:42.8006741Z             {
2026-06-15T10:02:42.8006869Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T10:02:42.8006945Z               "line": 785
2026-06-15T10:02:42.8007037Z             },
2026-06-15T10:02:42.8007112Z             {
2026-06-15T10:02:42.8007241Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T10:02:42.8007332Z               "line": 826
2026-06-15T10:02:42.8007413Z             },
2026-06-15T10:02:42.8007493Z             {
2026-06-15T10:02:42.8007609Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T10:02:42.8007704Z               "line": 900
2026-06-15T10:02:42.8007775Z             }
2026-06-15T10:02:42.8007865Z           ]
2026-06-15T10:02:42.8007953Z         }
2026-06-15T10:02:42.8008037Z       }
2026-06-15T10:02:42.8008133Z     },
2026-06-15T10:02:42.8008210Z     {
2026-06-15T10:02:42.8008337Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-15T10:02:42.8010142Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-15T10:02:42.8010247Z       "requiredStages": [
2026-06-15T10:02:42.8010337Z         "impl",
2026-06-15T10:02:42.8010418Z         "unit"
2026-06-15T10:02:42.8010509Z       ],
2026-06-15T10:02:42.8010604Z       "stages": {
2026-06-15T10:02:42.8010791Z         "doc": {
2026-06-15T10:02:42.8010890Z           "complete": false,
2026-06-15T10:02:42.8010981Z           "evidence": []
2026-06-15T10:02:42.8011158Z         },
2026-06-15T10:02:42.8011247Z         "impl": {
2026-06-15T10:02:42.8011343Z           "complete": true,
2026-06-15T10:02:42.8011435Z           "evidence": [
2026-06-15T10:02:42.8011511Z             {
2026-06-15T10:02:42.8011642Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T10:02:42.8011733Z               "line": 31
2026-06-15T10:02:42.8024155Z             }
2026-06-15T10:02:42.8024256Z           ]
2026-06-15T10:02:42.8024336Z         },
2026-06-15T10:02:42.8024432Z         "int": {
2026-06-15T10:02:42.8024533Z           "complete": false,
2026-06-15T10:02:42.8024628Z           "evidence": []
2026-06-15T10:02:42.8024708Z         },
2026-06-15T10:02:42.8024799Z         "unit": {
2026-06-15T10:02:42.8024895Z           "complete": true,
2026-06-15T10:02:42.8024990Z           "evidence": [
2026-06-15T10:02:42.8025084Z             {
2026-06-15T10:02:42.8025222Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T10:02:42.8025323Z               "line": 181
2026-06-15T10:02:42.8025403Z             }
2026-06-15T10:02:42.8025484Z           ]
2026-06-15T10:02:42.8025562Z         }
2026-06-15T10:02:42.8025657Z       }
2026-06-15T10:02:42.8025746Z     },
2026-06-15T10:02:42.8025819Z     {
2026-06-15T10:02:42.8025952Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-15T10:02:42.8026114Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-15T10:02:42.8026215Z       "requiredStages": [
2026-06-15T10:02:42.8026295Z         "impl",
2026-06-15T10:02:42.8026385Z         "unit"
2026-06-15T10:02:42.8026472Z       ],
2026-06-15T10:02:42.8026558Z       "stages": {
2026-06-15T10:02:42.8026634Z         "doc": {
2026-06-15T10:02:42.8026724Z           "complete": false,
2026-06-15T10:02:42.8026821Z           "evidence": []
2026-06-15T10:02:42.8026896Z         },
2026-06-15T10:02:42.8026996Z         "impl": {
2026-06-15T10:02:42.8027092Z           "complete": true,
2026-06-15T10:02:42.8027183Z           "evidence": [
2026-06-15T10:02:42.8027262Z             {
2026-06-15T10:02:42.8027390Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T10:02:42.8027486Z               "line": 49
2026-06-15T10:02:42.8027574Z             },
2026-06-15T10:02:42.8027656Z             {
2026-06-15T10:02:42.8027775Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T10:02:42.8027857Z               "line": 81
2026-06-15T10:02:42.8027941Z             }
2026-06-15T10:02:42.8028017Z           ]
2026-06-15T10:02:42.8028094Z         },
2026-06-15T10:02:42.8028175Z         "int": {
2026-06-15T10:02:42.8028265Z           "complete": false,
2026-06-15T10:02:42.8028361Z           "evidence": []
2026-06-15T10:02:42.8028443Z         },
2026-06-15T10:02:42.8028533Z         "unit": {
2026-06-15T10:02:42.8028618Z           "complete": true,
2026-06-15T10:02:42.8028715Z           "evidence": [
2026-06-15T10:02:42.8028795Z             {
2026-06-15T10:02:42.8028918Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T10:02:42.8029124Z               "line": 156
2026-06-15T10:02:42.8029209Z             },
2026-06-15T10:02:42.8029300Z             {
2026-06-15T10:02:42.8029402Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T10:02:42.8029520Z               "line": 173
2026-06-15T10:02:42.8029596Z             },
2026-06-15T10:02:42.8029678Z             {
2026-06-15T10:02:42.8029796Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T10:02:42.8029877Z               "line": 196
2026-06-15T10:02:42.8032848Z             }
2026-06-15T10:02:42.8032967Z           ]
2026-06-15T10:02:42.8033061Z         }
2026-06-15T10:02:42.8033136Z       }
2026-06-15T10:02:42.8033227Z     },
2026-06-15T10:02:42.8033305Z     {
2026-06-15T10:02:42.8033441Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-15T10:02:42.8033633Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-15T10:02:42.8033886Z       "requiredStages": [
2026-06-15T10:02:42.8033981Z         "impl",
2026-06-15T10:02:42.8034066Z         "unit"
2026-06-15T10:02:42.8034234Z       ],
2026-06-15T10:02:42.8034325Z       "stages": {
2026-06-15T10:02:42.8034410Z         "doc": {
2026-06-15T10:02:42.8034506Z           "complete": false,
2026-06-15T10:02:42.8034596Z           "evidence": []
2026-06-15T10:02:42.8034682Z         },
2026-06-15T10:02:42.8034763Z         "impl": {
2026-06-15T10:02:42.8034859Z           "complete": true,
2026-06-15T10:02:42.8034939Z           "evidence": [
2026-06-15T10:02:42.8035025Z             {
2026-06-15T10:02:42.8035155Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T10:02:42.8035235Z               "line": 120
2026-06-15T10:02:42.8035316Z             }
2026-06-15T10:02:42.8035393Z           ]
2026-06-15T10:02:42.8035474Z         },
2026-06-15T10:02:42.8035568Z         "int": {
2026-06-15T10:02:42.8035658Z           "complete": false,
2026-06-15T10:02:42.8035754Z           "evidence": []
2026-06-15T10:02:42.8035835Z         },
2026-06-15T10:02:42.8035921Z         "unit": {
2026-06-15T10:02:42.8036025Z           "complete": true,
2026-06-15T10:02:42.8036117Z           "evidence": [
2026-06-15T10:02:42.8036203Z             {
2026-06-15T10:02:42.8036321Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T10:02:42.8036403Z               "line": 212
2026-06-15T10:02:42.8036488Z             },
2026-06-15T10:02:42.8036574Z             {
2026-06-15T10:02:42.8036688Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T10:02:42.8036770Z               "line": 221
2026-06-15T10:02:42.8036850Z             },
2026-06-15T10:02:42.8036926Z             {
2026-06-15T10:02:42.8037042Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T10:02:42.8037123Z               "line": 229
2026-06-15T10:02:42.8037213Z             },
2026-06-15T10:02:42.8037289Z             {
2026-06-15T10:02:42.8037400Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T10:02:42.8037498Z               "line": 239
2026-06-15T10:02:42.8037579Z             },
2026-06-15T10:02:42.8037671Z             {
2026-06-15T10:02:42.8037785Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-15T10:02:42.8037875Z               "line": 249
2026-06-15T10:02:42.8037950Z             }
2026-06-15T10:02:42.8038027Z           ]
2026-06-15T10:02:42.8038116Z         }
2026-06-15T10:02:42.8038192Z       }
2026-06-15T10:02:42.8038277Z     },
2026-06-15T10:02:42.8038359Z     {
2026-06-15T10:02:42.8038477Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-15T10:02:42.8038635Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-15T10:02:42.8038735Z       "requiredStages": [
2026-06-15T10:02:42.8038820Z         "impl",
2026-06-15T10:02:42.8038892Z         "unit"
2026-06-15T10:02:42.8039060Z       ],
2026-06-15T10:02:42.8039145Z       "stages": {
2026-06-15T10:02:42.8039231Z         "doc": {
2026-06-15T10:02:42.8039327Z           "complete": false,
2026-06-15T10:02:42.8039427Z           "evidence": []
2026-06-15T10:02:42.8039512Z         },
2026-06-15T10:02:42.8039599Z         "impl": {
2026-06-15T10:02:42.8039693Z           "complete": true,
2026-06-15T10:02:42.8039774Z           "evidence": [
2026-06-15T10:02:42.8039855Z             {
2026-06-15T10:02:42.8039971Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T10:02:42.8040065Z               "line": 14
2026-06-15T10:02:42.8040146Z             },
2026-06-15T10:02:42.8040224Z             {
2026-06-15T10:02:42.8040337Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T10:02:42.8040418Z               "line": 63
2026-06-15T10:02:42.8040505Z             }
2026-06-15T10:02:42.8040582Z           ]
2026-06-15T10:02:42.8040666Z         },
2026-06-15T10:02:42.8040751Z         "int": {
2026-06-15T10:02:42.8040842Z           "complete": false,
2026-06-15T10:02:42.8040928Z           "evidence": []
2026-06-15T10:02:42.8041002Z         },
2026-06-15T10:02:42.8041197Z         "unit": {
2026-06-15T10:02:42.8041293Z           "complete": true,
2026-06-15T10:02:42.8041373Z           "evidence": [
2026-06-15T10:02:42.8041550Z             {
2026-06-15T10:02:42.8041650Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T10:02:42.8041740Z               "line": 164
2026-06-15T10:02:42.8041812Z             },
2026-06-15T10:02:42.8041903Z             {
2026-06-15T10:02:42.8042003Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T10:02:42.8042098Z               "line": 198
2026-06-15T10:02:42.8042185Z             },
2026-06-15T10:02:42.8042260Z             {
2026-06-15T10:02:42.8042370Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T10:02:42.8042447Z               "line": 220
2026-06-15T10:02:42.8042523Z             }
2026-06-15T10:02:42.8042604Z           ]
2026-06-15T10:02:42.8042680Z         }
2026-06-15T10:02:42.8042762Z       }
2026-06-15T10:02:42.8042838Z     },
2026-06-15T10:02:42.8042918Z     {
2026-06-15T10:02:42.8043028Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-15T10:02:42.8044404Z       "title": "Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)",
2026-06-15T10:02:42.8044517Z       "requiredStages": [],
2026-06-15T10:02:42.8044603Z       "stages": {
2026-06-15T10:02:42.8044679Z         "doc": {
2026-06-15T10:02:42.8044775Z           "complete": true,
2026-06-15T10:02:42.8044870Z           "evidence": [
2026-06-15T10:02:42.8044955Z             {
2026-06-15T10:02:42.8045061Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T10:02:42.8045151Z               "line": 165
2026-06-15T10:02:42.8045228Z             }
2026-06-15T10:02:42.8045323Z           ]
2026-06-15T10:02:42.8045400Z         },
2026-06-15T10:02:42.8045494Z         "impl": {
2026-06-15T10:02:42.8045590Z           "complete": false,
2026-06-15T10:02:42.8045677Z           "evidence": []
2026-06-15T10:02:42.8045767Z         },
2026-06-15T10:02:42.8045847Z         "int": {
2026-06-15T10:02:42.8045944Z           "complete": false,
2026-06-15T10:02:42.8046025Z           "evidence": []
2026-06-15T10:02:42.8046114Z         },
2026-06-15T10:02:42.8046199Z         "unit": {
2026-06-15T10:02:42.8046275Z           "complete": false,
2026-06-15T10:02:42.8046372Z           "evidence": []
2026-06-15T10:02:42.8046453Z         }
2026-06-15T10:02:42.8046542Z       }
2026-06-15T10:02:42.8046624Z     },
2026-06-15T10:02:42.8046715Z     {
2026-06-15T10:02:42.8046838Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-15T10:02:42.8047048Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-15T10:02:42.8047152Z       "requiredStages": [
2026-06-15T10:02:42.8047243Z         "impl",
2026-06-15T10:02:42.8047335Z         "unit"
2026-06-15T10:02:42.8047410Z       ],
2026-06-15T10:02:42.8047505Z       "stages": {
2026-06-15T10:02:42.8047602Z         "doc": {
2026-06-15T10:02:42.8047687Z           "complete": false,
2026-06-15T10:02:42.8047782Z           "evidence": []
2026-06-15T10:02:42.8047859Z         },
2026-06-15T10:02:42.8047936Z         "impl": {
2026-06-15T10:02:42.8048030Z           "complete": true,
2026-06-15T10:02:42.8048116Z           "evidence": [
2026-06-15T10:02:42.8048202Z             {
2026-06-15T10:02:42.8048327Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T10:02:42.8048420Z               "line": 76
2026-06-15T10:02:42.8048505Z             },
2026-06-15T10:02:42.8048597Z             {
2026-06-15T10:02:42.8048709Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T10:02:42.8048804Z               "line": 167
2026-06-15T10:02:42.8048895Z             },
2026-06-15T10:02:42.8049052Z             {
2026-06-15T10:02:42.8049291Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T10:02:42.8049380Z               "line": 233
2026-06-15T10:02:42.8049466Z             },
2026-06-15T10:02:42.8049629Z             {
2026-06-15T10:02:42.8049748Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T10:02:42.8049825Z               "line": 272
2026-06-15T10:02:42.8049906Z             }
2026-06-15T10:02:42.8049992Z           ]
2026-06-15T10:02:42.8050072Z         },
2026-06-15T10:02:42.8050159Z         "int": {
2026-06-15T10:02:42.8050244Z           "complete": false,
2026-06-15T10:02:42.8050339Z           "evidence": []
2026-06-15T10:02:42.8050425Z         },
2026-06-15T10:02:42.8050512Z         "unit": {
2026-06-15T10:02:42.8050611Z           "complete": true,
2026-06-15T10:02:42.8050697Z           "evidence": [
2026-06-15T10:02:42.8050774Z             {
2026-06-15T10:02:42.8050883Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T10:02:42.8050978Z               "line": 321
2026-06-15T10:02:42.8051075Z             },
2026-06-15T10:02:42.8051147Z             {
2026-06-15T10:02:42.8051264Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T10:02:42.8051358Z               "line": 329
2026-06-15T10:02:42.8051445Z             },
2026-06-15T10:02:42.8051520Z             {
2026-06-15T10:02:42.8051633Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T10:02:42.8051719Z               "line": 356
2026-06-15T10:02:42.8051800Z             },
2026-06-15T10:02:42.8051872Z             {
2026-06-15T10:02:42.8051976Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T10:02:42.8052057Z               "line": 395
2026-06-15T10:02:42.8052134Z             },
2026-06-15T10:02:42.8052215Z             {
2026-06-15T10:02:42.8052333Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T10:02:42.8052416Z               "line": 406
2026-06-15T10:02:42.8052496Z             },
2026-06-15T10:02:42.8052572Z             {
2026-06-15T10:02:42.8052687Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T10:02:42.8052773Z               "line": 418
2026-06-15T10:02:42.8052859Z             },
2026-06-15T10:02:42.8052954Z             {
2026-06-15T10:02:42.8053069Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-15T10:02:42.8053168Z               "line": 442
2026-06-15T10:02:42.8053245Z             }
2026-06-15T10:02:42.8053322Z           ]
2026-06-15T10:02:42.8053398Z         }
2026-06-15T10:02:42.8053478Z       }
2026-06-15T10:02:42.8053560Z     },
2026-06-15T10:02:42.8053637Z     {
2026-06-15T10:02:42.8053741Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-15T10:02:42.8053882Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-15T10:02:42.8053982Z       "requiredStages": [
2026-06-15T10:02:42.8054073Z         "impl",
2026-06-15T10:02:42.8054157Z         "int"
2026-06-15T10:02:42.8054247Z       ],
2026-06-15T10:02:42.8054329Z       "stages": {
2026-06-15T10:02:42.8054420Z         "doc": {
2026-06-15T10:02:42.8054514Z           "complete": false,
2026-06-15T10:02:42.8054609Z           "evidence": []
2026-06-15T10:02:42.8054682Z         },
2026-06-15T10:02:42.8054782Z         "impl": {
2026-06-15T10:02:42.8054881Z           "complete": true,
2026-06-15T10:02:42.8054968Z           "evidence": [
2026-06-15T10:02:42.8055049Z             {
2026-06-15T10:02:42.8055168Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.8055259Z               "line": 22
2026-06-15T10:02:42.8055344Z             }
2026-06-15T10:02:42.8055420Z           ]
2026-06-15T10:02:42.8055510Z         },
2026-06-15T10:02:42.8055588Z         "int": {
2026-06-15T10:02:42.8055683Z           "complete": true,
2026-06-15T10:02:42.8055774Z           "evidence": [
2026-06-15T10:02:42.8055864Z             {
2026-06-15T10:02:42.8055993Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-15T10:02:42.8056088Z               "line": 18
2026-06-15T10:02:42.8056174Z             }
2026-06-15T10:02:42.8056256Z           ]
2026-06-15T10:02:42.8056436Z         },
2026-06-15T10:02:42.8056513Z         "unit": {
2026-06-15T10:02:42.8056614Z           "complete": false,
2026-06-15T10:02:42.8056698Z           "evidence": []
2026-06-15T10:02:42.8056854Z         }
2026-06-15T10:02:42.8056946Z       }
2026-06-15T10:02:42.8057017Z     },
2026-06-15T10:02:42.8057097Z     {
2026-06-15T10:02:42.8057217Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-15T10:02:42.8057421Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-15T10:02:42.8057518Z       "requiredStages": [
2026-06-15T10:02:42.8057599Z         "impl",
2026-06-15T10:02:42.8057680Z         "unit"
2026-06-15T10:02:42.8057760Z       ],
2026-06-15T10:02:42.8057852Z       "stages": {
2026-06-15T10:02:42.8057928Z         "doc": {
2026-06-15T10:02:42.8058023Z           "complete": false,
2026-06-15T10:02:42.8058113Z           "evidence": []
2026-06-15T10:02:42.8058205Z         },
2026-06-15T10:02:42.8058294Z         "impl": {
2026-06-15T10:02:42.8058390Z           "complete": true,
2026-06-15T10:02:42.8058481Z           "evidence": [
2026-06-15T10:02:42.8058558Z             {
2026-06-15T10:02:42.8058685Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.8058767Z               "line": 415
2026-06-15T10:02:42.8058858Z             },
2026-06-15T10:02:42.8059023Z             {
2026-06-15T10:02:42.8059142Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T10:02:42.8059232Z               "line": 27
2026-06-15T10:02:42.8059312Z             }
2026-06-15T10:02:42.8059402Z           ]
2026-06-15T10:02:42.8059479Z         },
2026-06-15T10:02:42.8059556Z         "int": {
2026-06-15T10:02:42.8059655Z           "complete": false,
2026-06-15T10:02:42.8059736Z           "evidence": []
2026-06-15T10:02:42.8059822Z         },
2026-06-15T10:02:42.8059899Z         "unit": {
2026-06-15T10:02:42.8059998Z           "complete": true,
2026-06-15T10:02:42.8060085Z           "evidence": [
2026-06-15T10:02:42.8060170Z             {
2026-06-15T10:02:42.8060303Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.8060380Z               "line": 940
2026-06-15T10:02:42.8060466Z             },
2026-06-15T10:02:42.8060547Z             {
2026-06-15T10:02:42.8060665Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T10:02:42.8060748Z               "line": 181
2026-06-15T10:02:42.8060828Z             }
2026-06-15T10:02:42.8060913Z           ]
2026-06-15T10:02:42.8060990Z         }
2026-06-15T10:02:42.8061068Z       }
2026-06-15T10:02:42.8061152Z     },
2026-06-15T10:02:42.8061242Z     {
2026-06-15T10:02:42.8061353Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-15T10:02:42.8061514Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-15T10:02:42.8061620Z       "requiredStages": [
2026-06-15T10:02:42.8061697Z         "impl",
2026-06-15T10:02:42.8061791Z         "unit"
2026-06-15T10:02:42.8061867Z       ],
2026-06-15T10:02:42.8061957Z       "stages": {
2026-06-15T10:02:42.8062043Z         "doc": {
2026-06-15T10:02:42.8062140Z           "complete": false,
2026-06-15T10:02:42.8062235Z           "evidence": []
2026-06-15T10:02:42.8062322Z         },
2026-06-15T10:02:42.8062408Z         "impl": {
2026-06-15T10:02:42.8062498Z           "complete": true,
2026-06-15T10:02:42.8062584Z           "evidence": [
2026-06-15T10:02:42.8062666Z             {
2026-06-15T10:02:42.8062780Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.8062870Z               "line": 73
2026-06-15T10:02:42.8062947Z             },
2026-06-15T10:02:42.8063032Z             {
2026-06-15T10:02:42.8063146Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.8063242Z               "line": 941
2026-06-15T10:02:42.8063324Z             },
2026-06-15T10:02:42.8063414Z             {
2026-06-15T10:02:42.8063523Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T10:02:42.8063606Z               "line": 20
2026-06-15T10:02:42.8063686Z             },
2026-06-15T10:02:42.8063872Z             {
2026-06-15T10:02:42.8063991Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T10:02:42.8064086Z               "line": 100
2026-06-15T10:02:42.8064264Z             },
2026-06-15T10:02:42.8064344Z             {
2026-06-15T10:02:42.8064457Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-15T10:02:42.8064552Z               "line": 555
2026-06-15T10:02:42.8064628Z             },
2026-06-15T10:02:42.8064712Z             {
2026-06-15T10:02:42.8064836Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T10:02:42.8064932Z               "line": 68
2026-06-15T10:02:42.8065018Z             },
2026-06-15T10:02:42.8065089Z             {
2026-06-15T10:02:42.8065209Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T10:02:42.8065294Z               "line": 80
2026-06-15T10:02:42.8065384Z             }
2026-06-15T10:02:42.8065470Z           ]
2026-06-15T10:02:42.8065561Z         },
2026-06-15T10:02:42.8065652Z         "int": {
2026-06-15T10:02:42.8065751Z           "complete": true,
2026-06-15T10:02:42.8065848Z           "evidence": [
2026-06-15T10:02:42.8065924Z             {
2026-06-15T10:02:42.8066047Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-15T10:02:42.8066138Z               "line": 44
2026-06-15T10:02:42.8066215Z             }
2026-06-15T10:02:42.8066305Z           ]
2026-06-15T10:02:42.8066385Z         },
2026-06-15T10:02:42.8066483Z         "unit": {
2026-06-15T10:02:42.8066576Z           "complete": true,
2026-06-15T10:02:42.8066667Z           "evidence": [
2026-06-15T10:02:42.8066754Z             {
2026-06-15T10:02:42.8066868Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.8066962Z               "line": 1141
2026-06-15T10:02:42.8067049Z             },
2026-06-15T10:02:42.8067136Z             {
2026-06-15T10:02:42.8067253Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.8067352Z               "line": 1157
2026-06-15T10:02:42.8067444Z             },
2026-06-15T10:02:42.8067525Z             {
2026-06-15T10:02:42.8067648Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.8067744Z               "line": 1488
2026-06-15T10:02:42.8067830Z             },
2026-06-15T10:02:42.8067902Z             {
2026-06-15T10:02:42.8068025Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T10:02:42.8068116Z               "line": 152
2026-06-15T10:02:42.8068192Z             },
2026-06-15T10:02:42.8068273Z             {
2026-06-15T10:02:42.8068383Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T10:02:42.8068474Z               "line": 175
2026-06-15T10:02:42.8068555Z             },
2026-06-15T10:02:42.8068645Z             {
2026-06-15T10:02:42.8068756Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T10:02:42.8068836Z               "line": 186
2026-06-15T10:02:42.8068930Z             },
2026-06-15T10:02:42.8069094Z             {
2026-06-15T10:02:42.8069207Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T10:02:42.8069299Z               "line": 202
2026-06-15T10:02:42.8069390Z             },
2026-06-15T10:02:42.8069489Z             {
2026-06-15T10:02:42.8069607Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-15T10:02:42.8069702Z               "line": 216
2026-06-15T10:02:42.8069783Z             },
2026-06-15T10:02:42.8069862Z             {
2026-06-15T10:02:42.8069982Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-15T10:02:42.8070077Z               "line": 137
2026-06-15T10:02:42.8070153Z             },
2026-06-15T10:02:42.8070234Z             {
2026-06-15T10:02:42.8070349Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8070445Z               "line": 6587
2026-06-15T10:02:42.8070520Z             },
2026-06-15T10:02:42.8070601Z             {
2026-06-15T10:02:42.8070716Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-15T10:02:42.8070816Z               "line": 30
2026-06-15T10:02:42.8070892Z             },
2026-06-15T10:02:42.8071088Z             {
2026-06-15T10:02:42.8071202Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-15T10:02:42.8071303Z               "line": 73
2026-06-15T10:02:42.8071478Z             }
2026-06-15T10:02:42.8071555Z           ]
2026-06-15T10:02:42.8071642Z         }
2026-06-15T10:02:42.8071721Z       }
2026-06-15T10:02:42.8071802Z     },
2026-06-15T10:02:42.8071885Z     {
2026-06-15T10:02:42.8071994Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-15T10:02:42.8072248Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-15T10:02:42.8072342Z       "requiredStages": [
2026-06-15T10:02:42.8072427Z         "impl",
2026-06-15T10:02:42.8072502Z         "unit"
2026-06-15T10:02:42.8072579Z       ],
2026-06-15T10:02:42.8072664Z       "stages": {
2026-06-15T10:02:42.8072744Z         "doc": {
2026-06-15T10:02:42.8072839Z           "complete": true,
2026-06-15T10:02:42.8072921Z           "evidence": [
2026-06-15T10:02:42.8073020Z             {
2026-06-15T10:02:42.8073124Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T10:02:42.8073217Z               "line": 133
2026-06-15T10:02:42.8073302Z             }
2026-06-15T10:02:42.8073396Z           ]
2026-06-15T10:02:42.8073488Z         },
2026-06-15T10:02:42.8073564Z         "impl": {
2026-06-15T10:02:42.8073659Z           "complete": true,
2026-06-15T10:02:42.8073749Z           "evidence": [
2026-06-15T10:02:42.8073826Z             {
2026-06-15T10:02:42.8073945Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T10:02:42.8074036Z               "line": 65
2026-06-15T10:02:42.8074122Z             },
2026-06-15T10:02:42.8074194Z             {
2026-06-15T10:02:42.8074312Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T10:02:42.8074403Z               "line": 17
2026-06-15T10:02:42.8074485Z             },
2026-06-15T10:02:42.8074565Z             {
2026-06-15T10:02:42.8074704Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T10:02:42.8074805Z               "line": 146
2026-06-15T10:02:42.8074880Z             },
2026-06-15T10:02:42.8074960Z             {
2026-06-15T10:02:42.8075074Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.8075169Z               "line": 249
2026-06-15T10:02:42.8075249Z             },
2026-06-15T10:02:42.8075324Z             {
2026-06-15T10:02:42.8075439Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.8075531Z               "line": 362
2026-06-15T10:02:42.8075625Z             },
2026-06-15T10:02:42.8075701Z             {
2026-06-15T10:02:42.8075821Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T10:02:42.8075911Z               "line": 32
2026-06-15T10:02:42.8075996Z             },
2026-06-15T10:02:42.8076089Z             {
2026-06-15T10:02:42.8076188Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8076283Z               "line": 1171
2026-06-15T10:02:42.8076360Z             },
2026-06-15T10:02:42.8076446Z             {
2026-06-15T10:02:42.8076545Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8076645Z               "line": 5295
2026-06-15T10:02:42.8076728Z             },
2026-06-15T10:02:42.8076808Z             {
2026-06-15T10:02:42.8076917Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8077003Z               "line": 5577
2026-06-15T10:02:42.8077094Z             }
2026-06-15T10:02:42.8077184Z           ]
2026-06-15T10:02:42.8077274Z         },
2026-06-15T10:02:42.8077372Z         "int": {
2026-06-15T10:02:42.8077465Z           "complete": false,
2026-06-15T10:02:42.8077561Z           "evidence": []
2026-06-15T10:02:42.8077643Z         },
2026-06-15T10:02:42.8077729Z         "unit": {
2026-06-15T10:02:42.8077822Z           "complete": true,
2026-06-15T10:02:42.8077917Z           "evidence": [
2026-06-15T10:02:42.8078008Z             {
2026-06-15T10:02:42.8078119Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T10:02:42.8078212Z               "line": 94
2026-06-15T10:02:42.8078376Z             },
2026-06-15T10:02:42.8078471Z             {
2026-06-15T10:02:42.8078575Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T10:02:42.8078729Z               "line": 111
2026-06-15T10:02:42.8078823Z             },
2026-06-15T10:02:42.8078909Z             {
2026-06-15T10:02:42.8079100Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T10:02:42.8079185Z               "line": 124
2026-06-15T10:02:42.8079278Z             },
2026-06-15T10:02:42.8079349Z             {
2026-06-15T10:02:42.8079463Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T10:02:42.8079563Z               "line": 134
2026-06-15T10:02:42.8079645Z             },
2026-06-15T10:02:42.8079734Z             {
2026-06-15T10:02:42.8079834Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T10:02:42.8079931Z               "line": 144
2026-06-15T10:02:42.8080012Z             },
2026-06-15T10:02:42.8080091Z             {
2026-06-15T10:02:42.8080205Z               "path": "crates/spt-proto/src/id.rs",
2026-06-15T10:02:42.8080291Z               "line": 156
2026-06-15T10:02:42.8080385Z             },
2026-06-15T10:02:42.8080460Z             {
2026-06-15T10:02:42.8080594Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.8080686Z               "line": 746
2026-06-15T10:02:42.8080760Z             },
2026-06-15T10:02:42.8080851Z             {
2026-06-15T10:02:42.8080971Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T10:02:42.8081065Z               "line": 309
2026-06-15T10:02:42.8081146Z             }
2026-06-15T10:02:42.8081234Z           ]
2026-06-15T10:02:42.8081319Z         }
2026-06-15T10:02:42.8081399Z       }
2026-06-15T10:02:42.8081491Z     },
2026-06-15T10:02:42.8081577Z     {
2026-06-15T10:02:42.8081691Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-15T10:02:42.8081815Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-15T10:02:42.8081915Z       "requiredStages": [
2026-06-15T10:02:42.8081992Z         "impl",
2026-06-15T10:02:42.8082086Z         "unit"
2026-06-15T10:02:42.8082168Z       ],
2026-06-15T10:02:42.8082249Z       "stages": {
2026-06-15T10:02:42.8082339Z         "doc": {
2026-06-15T10:02:42.8082435Z           "complete": false,
2026-06-15T10:02:42.8082526Z           "evidence": []
2026-06-15T10:02:42.8082605Z         },
2026-06-15T10:02:42.8082697Z         "impl": {
2026-06-15T10:02:42.8082788Z           "complete": true,
2026-06-15T10:02:42.8082879Z           "evidence": [
2026-06-15T10:02:42.8082967Z             {
2026-06-15T10:02:42.8083077Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T10:02:42.8083173Z               "line": 128
2026-06-15T10:02:42.8083256Z             }
2026-06-15T10:02:42.8083337Z           ]
2026-06-15T10:02:42.8083414Z         },
2026-06-15T10:02:42.8083495Z         "int": {
2026-06-15T10:02:42.8083594Z           "complete": false,
2026-06-15T10:02:42.8083680Z           "evidence": []
2026-06-15T10:02:42.8083767Z         },
2026-06-15T10:02:42.8083862Z         "unit": {
2026-06-15T10:02:42.8083966Z           "complete": true,
2026-06-15T10:02:42.8084062Z           "evidence": [
2026-06-15T10:02:42.8084138Z             {
2026-06-15T10:02:42.8084261Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T10:02:42.8084353Z               "line": 205
2026-06-15T10:02:42.8084440Z             }
2026-06-15T10:02:42.8084519Z           ]
2026-06-15T10:02:42.8084600Z         }
2026-06-15T10:02:42.8084692Z       }
2026-06-15T10:02:42.8084768Z     },
2026-06-15T10:02:42.8084862Z     {
2026-06-15T10:02:42.8084977Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-15T10:02:42.8085135Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-15T10:02:42.8085235Z       "requiredStages": [
2026-06-15T10:02:42.8085322Z         "impl",
2026-06-15T10:02:42.8085412Z         "unit"
2026-06-15T10:02:42.8085487Z       ],
2026-06-15T10:02:42.8085577Z       "stages": {
2026-06-15T10:02:42.8085658Z         "doc": {
2026-06-15T10:02:42.8085753Z           "complete": false,
2026-06-15T10:02:42.8085970Z           "evidence": []
2026-06-15T10:02:42.8086062Z         },
2026-06-15T10:02:42.8086142Z         "impl": {
2026-06-15T10:02:42.8086319Z           "complete": true,
2026-06-15T10:02:42.8086414Z           "evidence": [
2026-06-15T10:02:42.8086504Z             {
2026-06-15T10:02:42.8086624Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T10:02:42.8086710Z               "line": 272
2026-06-15T10:02:42.8086786Z             },
2026-06-15T10:02:42.8086880Z             {
2026-06-15T10:02:42.8086982Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T10:02:42.8087077Z               "line": 283
2026-06-15T10:02:42.8087157Z             },
2026-06-15T10:02:42.8087244Z             {
2026-06-15T10:02:42.8087353Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T10:02:42.8087449Z               "line": 301
2026-06-15T10:02:42.8087539Z             }
2026-06-15T10:02:42.8087621Z           ]
2026-06-15T10:02:42.8087701Z         },
2026-06-15T10:02:42.8087787Z         "int": {
2026-06-15T10:02:42.8087883Z           "complete": false,
2026-06-15T10:02:42.8087960Z           "evidence": []
2026-06-15T10:02:42.8088054Z         },
2026-06-15T10:02:42.8088140Z         "unit": {
2026-06-15T10:02:42.8088217Z           "complete": true,
2026-06-15T10:02:42.8088312Z           "evidence": [
2026-06-15T10:02:42.8088387Z             {
2026-06-15T10:02:42.8088506Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T10:02:42.8088592Z               "line": 325
2026-06-15T10:02:42.8088688Z             },
2026-06-15T10:02:42.8088777Z             {
2026-06-15T10:02:42.8088879Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T10:02:42.8089069Z               "line": 346
2026-06-15T10:02:42.8089155Z             },
2026-06-15T10:02:42.8089241Z             {
2026-06-15T10:02:42.8089379Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T10:02:42.8089479Z               "line": 574
2026-06-15T10:02:42.8089570Z             },
2026-06-15T10:02:42.8089660Z             {
2026-06-15T10:02:42.8089774Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T10:02:42.8089866Z               "line": 585
2026-06-15T10:02:42.8089970Z             },
2026-06-15T10:02:42.8090046Z             {
2026-06-15T10:02:42.8090153Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T10:02:42.8090247Z               "line": 598
2026-06-15T10:02:42.8090332Z             }
2026-06-15T10:02:42.8090419Z           ]
2026-06-15T10:02:42.8090496Z         }
2026-06-15T10:02:42.8090572Z       }
2026-06-15T10:02:42.8090651Z     },
2026-06-15T10:02:42.8090732Z     {
2026-06-15T10:02:42.8090851Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-15T10:02:42.8091440Z       "title": "Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)",
2026-06-15T10:02:42.8091545Z       "requiredStages": [
2026-06-15T10:02:42.8091640Z         "impl",
2026-06-15T10:02:42.8091716Z         "unit"
2026-06-15T10:02:42.8091808Z       ],
2026-06-15T10:02:42.8091889Z       "stages": {
2026-06-15T10:02:42.8091973Z         "doc": {
2026-06-15T10:02:42.8092066Z           "complete": false,
2026-06-15T10:02:42.8092160Z           "evidence": []
2026-06-15T10:02:42.8092251Z         },
2026-06-15T10:02:42.8092332Z         "impl": {
2026-06-15T10:02:42.8092428Z           "complete": true,
2026-06-15T10:02:42.8092522Z           "evidence": [
2026-06-15T10:02:42.8092598Z             {
2026-06-15T10:02:42.8092728Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.8092823Z               "line": 759
2026-06-15T10:02:42.8092908Z             }
2026-06-15T10:02:42.8092995Z           ]
2026-06-15T10:02:42.8093081Z         },
2026-06-15T10:02:42.8093161Z         "int": {
2026-06-15T10:02:42.8093257Z           "complete": false,
2026-06-15T10:02:42.8093348Z           "evidence": []
2026-06-15T10:02:42.8093542Z         },
2026-06-15T10:02:42.8093632Z         "unit": {
2026-06-15T10:02:42.8093718Z           "complete": true,
2026-06-15T10:02:42.8093812Z           "evidence": [
2026-06-15T10:02:42.8093978Z             {
2026-06-15T10:02:42.8094103Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.8094192Z               "line": 873
2026-06-15T10:02:42.8094268Z             }
2026-06-15T10:02:42.8094356Z           ]
2026-06-15T10:02:42.8094437Z         }
2026-06-15T10:02:42.8094526Z       }
2026-06-15T10:02:42.8094598Z     },
2026-06-15T10:02:42.8094689Z     {
2026-06-15T10:02:42.8094798Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-15T10:02:42.8095023Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-15T10:02:42.8095122Z       "requiredStages": [
2026-06-15T10:02:42.8095208Z         "impl",
2026-06-15T10:02:42.8095300Z         "unit"
2026-06-15T10:02:42.8095375Z       ],
2026-06-15T10:02:42.8095465Z       "stages": {
2026-06-15T10:02:42.8095547Z         "doc": {
2026-06-15T10:02:42.8095643Z           "complete": false,
2026-06-15T10:02:42.8095742Z           "evidence": []
2026-06-15T10:02:42.8095833Z         },
2026-06-15T10:02:42.8095925Z         "impl": {
2026-06-15T10:02:42.8096014Z           "complete": true,
2026-06-15T10:02:42.8096104Z           "evidence": [
2026-06-15T10:02:42.8096189Z             {
2026-06-15T10:02:42.8096303Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T10:02:42.8096387Z               "line": 14
2026-06-15T10:02:42.8096473Z             },
2026-06-15T10:02:42.8096559Z             {
2026-06-15T10:02:42.8096665Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T10:02:42.8096764Z               "line": 449
2026-06-15T10:02:42.8099572Z             }
2026-06-15T10:02:42.8099690Z           ]
2026-06-15T10:02:42.8099773Z         },
2026-06-15T10:02:42.8099872Z         "int": {
2026-06-15T10:02:42.8099972Z           "complete": false,
2026-06-15T10:02:42.8100068Z           "evidence": []
2026-06-15T10:02:42.8100154Z         },
2026-06-15T10:02:42.8100244Z         "unit": {
2026-06-15T10:02:42.8100329Z           "complete": true,
2026-06-15T10:02:42.8100421Z           "evidence": [
2026-06-15T10:02:42.8100502Z             {
2026-06-15T10:02:42.8100616Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T10:02:42.8100708Z               "line": 130
2026-06-15T10:02:42.8100793Z             },
2026-06-15T10:02:42.8100882Z             {
2026-06-15T10:02:42.8100998Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T10:02:42.8101094Z               "line": 138
2026-06-15T10:02:42.8101174Z             },
2026-06-15T10:02:42.8101254Z             {
2026-06-15T10:02:42.8101354Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T10:02:42.8101439Z               "line": 146
2026-06-15T10:02:42.8101523Z             },
2026-06-15T10:02:42.8101609Z             {
2026-06-15T10:02:42.8101724Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T10:02:42.8101814Z               "line": 154
2026-06-15T10:02:42.8101899Z             },
2026-06-15T10:02:42.8101981Z             {
2026-06-15T10:02:42.8102081Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T10:02:42.8102167Z               "line": 162
2026-06-15T10:02:42.8102243Z             },
2026-06-15T10:02:42.8102320Z             {
2026-06-15T10:02:42.8102424Z               "path": "crates/spt/src/api/auth.rs",
2026-06-15T10:02:42.8102519Z               "line": 170
2026-06-15T10:02:42.8102601Z             }
2026-06-15T10:02:42.8102697Z           ]
2026-06-15T10:02:42.8102778Z         }
2026-06-15T10:02:42.8102867Z       }
2026-06-15T10:02:42.8102945Z     },
2026-06-15T10:02:42.8103021Z     {
2026-06-15T10:02:42.8103140Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-15T10:02:42.8104069Z       "title": "Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)",
2026-06-15T10:02:42.8104311Z       "requiredStages": [
2026-06-15T10:02:42.8104404Z         "impl",
2026-06-15T10:02:42.8104581Z         "unit"
2026-06-15T10:02:42.8104663Z       ],
2026-06-15T10:02:42.8104738Z       "stages": {
2026-06-15T10:02:42.8104828Z         "doc": {
2026-06-15T10:02:42.8104921Z           "complete": false,
2026-06-15T10:02:42.8105016Z           "evidence": []
2026-06-15T10:02:42.8105105Z         },
2026-06-15T10:02:42.8105192Z         "impl": {
2026-06-15T10:02:42.8105287Z           "complete": true,
2026-06-15T10:02:42.8105372Z           "evidence": [
2026-06-15T10:02:42.8105458Z             {
2026-06-15T10:02:42.8105606Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T10:02:42.8105701Z               "line": 34
2026-06-15T10:02:42.8105773Z             }
2026-06-15T10:02:42.8105855Z           ]
2026-06-15T10:02:42.8105930Z         },
2026-06-15T10:02:42.8106007Z         "int": {
2026-06-15T10:02:42.8106112Z           "complete": false,
2026-06-15T10:02:42.8106199Z           "evidence": []
2026-06-15T10:02:42.8106287Z         },
2026-06-15T10:02:42.8106374Z         "unit": {
2026-06-15T10:02:42.8106470Z           "complete": true,
2026-06-15T10:02:42.8106570Z           "evidence": [
2026-06-15T10:02:42.8106654Z             {
2026-06-15T10:02:42.8106797Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T10:02:42.8106878Z               "line": 188
2026-06-15T10:02:42.8106962Z             },
2026-06-15T10:02:42.8107052Z             {
2026-06-15T10:02:42.8107182Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T10:02:42.8107267Z               "line": 200
2026-06-15T10:02:42.8107348Z             },
2026-06-15T10:02:42.8107429Z             {
2026-06-15T10:02:42.8107558Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T10:02:42.8107658Z               "line": 211
2026-06-15T10:02:42.8107744Z             },
2026-06-15T10:02:42.8107825Z             {
2026-06-15T10:02:42.8107958Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T10:02:42.8108054Z               "line": 253
2026-06-15T10:02:42.8108135Z             },
2026-06-15T10:02:42.8108216Z             {
2026-06-15T10:02:42.8108349Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T10:02:42.8108445Z               "line": 277
2026-06-15T10:02:42.8108526Z             },
2026-06-15T10:02:42.8108616Z             {
2026-06-15T10:02:42.8108742Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T10:02:42.8108831Z               "line": 300
2026-06-15T10:02:42.8108912Z             },
2026-06-15T10:02:42.8109089Z             {
2026-06-15T10:02:42.8109227Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-15T10:02:42.8109328Z               "line": 316
2026-06-15T10:02:42.8109418Z             }
2026-06-15T10:02:42.8109507Z           ]
2026-06-15T10:02:42.8109597Z         }
2026-06-15T10:02:42.8109679Z       }
2026-06-15T10:02:42.8109751Z     },
2026-06-15T10:02:42.8109831Z     {
2026-06-15T10:02:42.8109946Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-15T10:02:42.8110485Z       "title": "Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)",
2026-06-15T10:02:42.8110585Z       "requiredStages": [
2026-06-15T10:02:42.8110676Z         "impl",
2026-06-15T10:02:42.8110761Z         "unit"
2026-06-15T10:02:42.8110842Z       ],
2026-06-15T10:02:42.8110928Z       "stages": {
2026-06-15T10:02:42.8111010Z         "doc": {
2026-06-15T10:02:42.8111104Z           "complete": false,
2026-06-15T10:02:42.8111204Z           "evidence": []
2026-06-15T10:02:42.8111282Z         },
2026-06-15T10:02:42.8111377Z         "impl": {
2026-06-15T10:02:42.8111467Z           "complete": true,
2026-06-15T10:02:42.8111558Z           "evidence": [
2026-06-15T10:02:42.8111775Z             {
2026-06-15T10:02:42.8111895Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8112093Z               "line": 29
2026-06-15T10:02:42.8112183Z             },
2026-06-15T10:02:42.8112269Z             {
2026-06-15T10:02:42.8112384Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8112479Z               "line": 174
2026-06-15T10:02:42.8112561Z             },
2026-06-15T10:02:42.8112646Z             {
2026-06-15T10:02:42.8112755Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8112851Z               "line": 194
2026-06-15T10:02:42.8112933Z             },
2026-06-15T10:02:42.8113009Z             {
2026-06-15T10:02:42.8113127Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8113214Z               "line": 222
2026-06-15T10:02:42.8113290Z             }
2026-06-15T10:02:42.8113366Z           ]
2026-06-15T10:02:42.8113447Z         },
2026-06-15T10:02:42.8113538Z         "int": {
2026-06-15T10:02:42.8113633Z           "complete": false,
2026-06-15T10:02:42.8113723Z           "evidence": []
2026-06-15T10:02:42.8113795Z         },
2026-06-15T10:02:42.8113892Z         "unit": {
2026-06-15T10:02:42.8113980Z           "complete": true,
2026-06-15T10:02:42.8114076Z           "evidence": [
2026-06-15T10:02:42.8114158Z             {
2026-06-15T10:02:42.8114272Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8114362Z               "line": 329
2026-06-15T10:02:42.8114440Z             },
2026-06-15T10:02:42.8114521Z             {
2026-06-15T10:02:42.8114633Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8114714Z               "line": 344
2026-06-15T10:02:42.8114809Z             },
2026-06-15T10:02:42.8114885Z             {
2026-06-15T10:02:42.8115002Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8115079Z               "line": 417
2026-06-15T10:02:42.8115175Z             },
2026-06-15T10:02:42.8115261Z             {
2026-06-15T10:02:42.8115379Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8115462Z               "line": 433
2026-06-15T10:02:42.8115547Z             },
2026-06-15T10:02:42.8115622Z             {
2026-06-15T10:02:42.8115733Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8115833Z               "line": 492
2026-06-15T10:02:42.8115914Z             },
2026-06-15T10:02:42.8116004Z             {
2026-06-15T10:02:42.8116120Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8116209Z               "line": 506
2026-06-15T10:02:42.8116285Z             },
2026-06-15T10:02:42.8116357Z             {
2026-06-15T10:02:42.8116477Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8116562Z               "line": 517
2026-06-15T10:02:42.8116643Z             },
2026-06-15T10:02:42.8116720Z             {
2026-06-15T10:02:42.8116833Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8116934Z               "line": 528
2026-06-15T10:02:42.8117012Z             }
2026-06-15T10:02:42.8117088Z           ]
2026-06-15T10:02:42.8117172Z         }
2026-06-15T10:02:42.8117257Z       }
2026-06-15T10:02:42.8117338Z     },
2026-06-15T10:02:42.8117415Z     {
2026-06-15T10:02:42.8117541Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-15T10:02:42.8118208Z       "title": "Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)",
2026-06-15T10:02:42.8118309Z       "requiredStages": [
2026-06-15T10:02:42.8118404Z         "impl",
2026-06-15T10:02:42.8118480Z         "unit"
2026-06-15T10:02:42.8118556Z       ],
2026-06-15T10:02:42.8118639Z       "stages": {
2026-06-15T10:02:42.8118728Z         "doc": {
2026-06-15T10:02:42.8118819Z           "complete": false,
2026-06-15T10:02:42.8118914Z           "evidence": []
2026-06-15T10:02:42.8119186Z         },
2026-06-15T10:02:42.8119268Z         "impl": {
2026-06-15T10:02:42.8119367Z           "complete": true,
2026-06-15T10:02:42.8119463Z           "evidence": [
2026-06-15T10:02:42.8119640Z             {
2026-06-15T10:02:42.8119777Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T10:02:42.8119874Z               "line": 27
2026-06-15T10:02:42.8119969Z             },
2026-06-15T10:02:42.8120044Z             {
2026-06-15T10:02:42.8120162Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T10:02:42.8120249Z               "line": 110
2026-06-15T10:02:42.8120340Z             },
2026-06-15T10:02:42.8120425Z             {
2026-06-15T10:02:42.8120554Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T10:02:42.8120645Z               "line": 153
2026-06-15T10:02:42.8120725Z             },
2026-06-15T10:02:42.8120801Z             {
2026-06-15T10:02:42.8120926Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T10:02:42.8121026Z               "line": 182
2026-06-15T10:02:42.8121106Z             },
2026-06-15T10:02:42.8121188Z             {
2026-06-15T10:02:42.8121331Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T10:02:42.8121412Z               "line": 31
2026-06-15T10:02:42.8121498Z             },
2026-06-15T10:02:42.8121584Z             {
2026-06-15T10:02:42.8121727Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T10:02:42.8121818Z               "line": 113
2026-06-15T10:02:42.8121903Z             },
2026-06-15T10:02:42.8121979Z             {
2026-06-15T10:02:42.8122118Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T10:02:42.8122195Z               "line": 138
2026-06-15T10:02:42.8122270Z             }
2026-06-15T10:02:42.8122359Z           ]
2026-06-15T10:02:42.8122440Z         },
2026-06-15T10:02:42.8122526Z         "int": {
2026-06-15T10:02:42.8122625Z           "complete": false,
2026-06-15T10:02:42.8122710Z           "evidence": []
2026-06-15T10:02:42.8122796Z         },
2026-06-15T10:02:42.8122873Z         "unit": {
2026-06-15T10:02:42.8122968Z           "complete": true,
2026-06-15T10:02:42.8123053Z           "evidence": [
2026-06-15T10:02:42.8123135Z             {
2026-06-15T10:02:42.8123268Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T10:02:42.8123358Z               "line": 261
2026-06-15T10:02:42.8123440Z             },
2026-06-15T10:02:42.8123517Z             {
2026-06-15T10:02:42.8123635Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T10:02:42.8123731Z               "line": 276
2026-06-15T10:02:42.8123812Z             },
2026-06-15T10:02:42.8123893Z             {
2026-06-15T10:02:42.8124017Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T10:02:42.8124117Z               "line": 293
2026-06-15T10:02:42.8124193Z             },
2026-06-15T10:02:42.8124274Z             {
2026-06-15T10:02:42.8124394Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T10:02:42.8124489Z               "line": 310
2026-06-15T10:02:42.8124584Z             },
2026-06-15T10:02:42.8124656Z             {
2026-06-15T10:02:42.8124781Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T10:02:42.8124869Z               "line": 327
2026-06-15T10:02:42.8124956Z             },
2026-06-15T10:02:42.8125034Z             {
2026-06-15T10:02:42.8125156Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T10:02:42.8125255Z               "line": 366
2026-06-15T10:02:42.8125332Z             },
2026-06-15T10:02:42.8125422Z             {
2026-06-15T10:02:42.8125558Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T10:02:42.8125654Z               "line": 179
2026-06-15T10:02:42.8125749Z             },
2026-06-15T10:02:42.8125826Z             {
2026-06-15T10:02:42.8125963Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T10:02:42.8126145Z               "line": 194
2026-06-15T10:02:42.8126225Z             },
2026-06-15T10:02:42.8126307Z             {
2026-06-15T10:02:42.8126441Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T10:02:42.8126617Z               "line": 204
2026-06-15T10:02:42.8126699Z             },
2026-06-15T10:02:42.8126784Z             {
2026-06-15T10:02:42.8126907Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T10:02:42.8127004Z               "line": 259
2026-06-15T10:02:42.8127088Z             },
2026-06-15T10:02:42.8127160Z             {
2026-06-15T10:02:42.8127285Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T10:02:42.8127370Z               "line": 269
2026-06-15T10:02:42.8127446Z             },
2026-06-15T10:02:42.8127523Z             {
2026-06-15T10:02:42.8127657Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T10:02:42.8127756Z               "line": 283
2026-06-15T10:02:42.8127840Z             }
2026-06-15T10:02:42.8127927Z           ]
2026-06-15T10:02:42.8128002Z         }
2026-06-15T10:02:42.8128096Z       }
2026-06-15T10:02:42.8128172Z     },
2026-06-15T10:02:42.8128254Z     {
2026-06-15T10:02:42.8128364Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-15T10:02:42.8128540Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-15T10:02:42.8128640Z       "requiredStages": [],
2026-06-15T10:02:42.8128716Z       "stages": {
2026-06-15T10:02:42.8128806Z         "doc": {
2026-06-15T10:02:42.8128898Z           "complete": false,
2026-06-15T10:02:42.8129064Z           "evidence": []
2026-06-15T10:02:42.8129145Z         },
2026-06-15T10:02:42.8129232Z         "impl": {
2026-06-15T10:02:42.8129322Z           "complete": false,
2026-06-15T10:02:42.8129417Z           "evidence": []
2026-06-15T10:02:42.8129508Z         },
2026-06-15T10:02:42.8129589Z         "int": {
2026-06-15T10:02:42.8129679Z           "complete": false,
2026-06-15T10:02:42.8129779Z           "evidence": []
2026-06-15T10:02:42.8129857Z         },
2026-06-15T10:02:42.8129946Z         "unit": {
2026-06-15T10:02:42.8130037Z           "complete": false,
2026-06-15T10:02:42.8130133Z           "evidence": []
2026-06-15T10:02:42.8130209Z         }
2026-06-15T10:02:42.8130299Z       }
2026-06-15T10:02:42.8130385Z     },
2026-06-15T10:02:42.8130462Z     {
2026-06-15T10:02:42.8130599Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-15T10:02:42.8131424Z       "title": "Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)",
2026-06-15T10:02:42.8131524Z       "requiredStages": [
2026-06-15T10:02:42.8131619Z         "impl",
2026-06-15T10:02:42.8131695Z         "unit"
2026-06-15T10:02:42.8131777Z       ],
2026-06-15T10:02:42.8131853Z       "stages": {
2026-06-15T10:02:42.8131938Z         "doc": {
2026-06-15T10:02:42.8132034Z           "complete": false,
2026-06-15T10:02:42.8132130Z           "evidence": []
2026-06-15T10:02:42.8132206Z         },
2026-06-15T10:02:42.8132291Z         "impl": {
2026-06-15T10:02:42.8132388Z           "complete": true,
2026-06-15T10:02:42.8132478Z           "evidence": [
2026-06-15T10:02:42.8132553Z             {
2026-06-15T10:02:42.8132683Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T10:02:42.8132778Z               "line": 26
2026-06-15T10:02:42.8132863Z             },
2026-06-15T10:02:42.8132943Z             {
2026-06-15T10:02:42.8133063Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T10:02:42.8133157Z               "line": 95
2026-06-15T10:02:42.8133241Z             },
2026-06-15T10:02:42.8133322Z             {
2026-06-15T10:02:42.8133438Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T10:02:42.8133533Z               "line": 166
2026-06-15T10:02:42.8133608Z             },
2026-06-15T10:02:42.8133699Z             {
2026-06-15T10:02:42.8133932Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T10:02:42.8134024Z               "line": 19
2026-06-15T10:02:42.8134195Z             },
2026-06-15T10:02:42.8134281Z             {
2026-06-15T10:02:42.8134406Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T10:02:42.8134486Z               "line": 50
2026-06-15T10:02:42.8134572Z             },
2026-06-15T10:02:42.8134653Z             {
2026-06-15T10:02:42.8134758Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T10:02:42.8134839Z               "line": 18
2026-06-15T10:02:42.8134930Z             },
2026-06-15T10:02:42.8135007Z             {
2026-06-15T10:02:42.8135110Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T10:02:42.8135196Z               "line": 71
2026-06-15T10:02:42.8135279Z             },
2026-06-15T10:02:42.8135359Z             {
2026-06-15T10:02:42.8135473Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.8135574Z               "line": 79
2026-06-15T10:02:42.8135651Z             }
2026-06-15T10:02:42.8135730Z           ]
2026-06-15T10:02:42.8135806Z         },
2026-06-15T10:02:42.8135896Z         "int": {
2026-06-15T10:02:42.8135991Z           "complete": false,
2026-06-15T10:02:42.8136080Z           "evidence": []
2026-06-15T10:02:42.8136166Z         },
2026-06-15T10:02:42.8136242Z         "unit": {
2026-06-15T10:02:42.8136328Z           "complete": true,
2026-06-15T10:02:42.8136418Z           "evidence": [
2026-06-15T10:02:42.8136499Z             {
2026-06-15T10:02:42.8136620Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T10:02:42.8136701Z               "line": 289
2026-06-15T10:02:42.8136790Z             },
2026-06-15T10:02:42.8136863Z             {
2026-06-15T10:02:42.8136981Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T10:02:42.8137076Z               "line": 314
2026-06-15T10:02:42.8137153Z             },
2026-06-15T10:02:42.8137244Z             {
2026-06-15T10:02:42.8137363Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T10:02:42.8137463Z               "line": 350
2026-06-15T10:02:42.8137545Z             },
2026-06-15T10:02:42.8137625Z             {
2026-06-15T10:02:42.8137744Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T10:02:42.8137836Z               "line": 418
2026-06-15T10:02:42.8137912Z             },
2026-06-15T10:02:42.8137991Z             {
2026-06-15T10:02:42.8138107Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T10:02:42.8138189Z               "line": 429
2026-06-15T10:02:42.8138268Z             },
2026-06-15T10:02:42.8138349Z             {
2026-06-15T10:02:42.8138463Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T10:02:42.8138558Z               "line": 460
2026-06-15T10:02:42.8138632Z             },
2026-06-15T10:02:42.8138718Z             {
2026-06-15T10:02:42.8138833Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T10:02:42.8138919Z               "line": 471
2026-06-15T10:02:42.8139076Z             },
2026-06-15T10:02:42.8139158Z             {
2026-06-15T10:02:42.8139281Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T10:02:42.8139385Z               "line": 77
2026-06-15T10:02:42.8139482Z             },
2026-06-15T10:02:42.8139558Z             {
2026-06-15T10:02:42.8139676Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T10:02:42.8139768Z               "line": 97
2026-06-15T10:02:42.8139844Z             },
2026-06-15T10:02:42.8139920Z             {
2026-06-15T10:02:42.8140039Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T10:02:42.8140121Z               "line": 112
2026-06-15T10:02:42.8140201Z             },
2026-06-15T10:02:42.8140282Z             {
2026-06-15T10:02:42.8140398Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T10:02:42.8140478Z               "line": 123
2026-06-15T10:02:42.8140578Z             },
2026-06-15T10:02:42.8140654Z             {
2026-06-15T10:02:42.8140878Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T10:02:42.8140959Z               "line": 130
2026-06-15T10:02:42.8141051Z             },
2026-06-15T10:02:42.8141240Z             {
2026-06-15T10:02:42.8141349Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-15T10:02:42.8141446Z               "line": 145
2026-06-15T10:02:42.8141531Z             },
2026-06-15T10:02:42.8141601Z             {
2026-06-15T10:02:42.8141712Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T10:02:42.8141793Z               "line": 115
2026-06-15T10:02:42.8141878Z             },
2026-06-15T10:02:42.8141955Z             {
2026-06-15T10:02:42.8142074Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T10:02:42.8142165Z               "line": 130
2026-06-15T10:02:42.8142245Z             },
2026-06-15T10:02:42.8142333Z             {
2026-06-15T10:02:42.8142446Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.8142546Z               "line": 420
2026-06-15T10:02:42.8142628Z             }
2026-06-15T10:02:42.8142704Z           ]
2026-06-15T10:02:42.8142780Z         }
2026-06-15T10:02:42.8142851Z       }
2026-06-15T10:02:42.8142948Z     },
2026-06-15T10:02:42.8143028Z     {
2026-06-15T10:02:42.8143152Z       "id": "REQ-HAZARD-PUMP-IPC-DEADLINE",
2026-06-15T10:02:42.8144027Z       "title": "The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump",
2026-06-15T10:02:42.8144130Z       "requiredStages": [
2026-06-15T10:02:42.8144206Z         "doc",
2026-06-15T10:02:42.8144284Z         "impl",
2026-06-15T10:02:42.8144374Z         "unit"
2026-06-15T10:02:42.8144449Z       ],
2026-06-15T10:02:42.8144541Z       "stages": {
2026-06-15T10:02:42.8144632Z         "doc": {
2026-06-15T10:02:42.8144726Z           "complete": true,
2026-06-15T10:02:42.8144822Z           "evidence": [
2026-06-15T10:02:42.8144899Z             {
2026-06-15T10:02:42.8145008Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T10:02:42.8145102Z               "line": 367
2026-06-15T10:02:42.8145185Z             }
2026-06-15T10:02:42.8145266Z           ]
2026-06-15T10:02:42.8145352Z         },
2026-06-15T10:02:42.8145446Z         "impl": {
2026-06-15T10:02:42.8145533Z           "complete": true,
2026-06-15T10:02:42.8145628Z           "evidence": [
2026-06-15T10:02:42.8145705Z             {
2026-06-15T10:02:42.8145825Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.8145915Z               "line": 199
2026-06-15T10:02:42.8145989Z             },
2026-06-15T10:02:42.8146066Z             {
2026-06-15T10:02:42.8146177Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.8146272Z               "line": 303
2026-06-15T10:02:42.8146356Z             },
2026-06-15T10:02:42.8146442Z             {
2026-06-15T10:02:42.8146561Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.8146654Z               "line": 515
2026-06-15T10:02:42.8146740Z             },
2026-06-15T10:02:42.8146821Z             {
2026-06-15T10:02:42.8146932Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.8147021Z               "line": 530
2026-06-15T10:02:42.8147103Z             },
2026-06-15T10:02:42.8147194Z             {
2026-06-15T10:02:42.8147298Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.8147393Z               "line": 1127
2026-06-15T10:02:42.8147466Z             },
2026-06-15T10:02:42.8147546Z             {
2026-06-15T10:02:42.8147669Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.8147756Z               "line": 443
2026-06-15T10:02:42.8147837Z             },
2026-06-15T10:02:42.8147909Z             {
2026-06-15T10:02:42.8148027Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.8148105Z               "line": 590
2026-06-15T10:02:42.8148275Z             },
2026-06-15T10:02:42.8148362Z             {
2026-06-15T10:02:42.8148481Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.8148735Z               "line": 731
2026-06-15T10:02:42.8148810Z             }
2026-06-15T10:02:42.8148899Z           ]
2026-06-15T10:02:42.8149061Z         },
2026-06-15T10:02:42.8149151Z         "int": {
2026-06-15T10:02:42.8149245Z           "complete": false,
2026-06-15T10:02:42.8149350Z           "evidence": []
2026-06-15T10:02:42.8149456Z         },
2026-06-15T10:02:42.8149540Z         "unit": {
2026-06-15T10:02:42.8149636Z           "complete": true,
2026-06-15T10:02:42.8149732Z           "evidence": [
2026-06-15T10:02:42.8149817Z             {
2026-06-15T10:02:42.8149931Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.8150023Z               "line": 1155
2026-06-15T10:02:42.8150113Z             },
2026-06-15T10:02:42.8150188Z             {
2026-06-15T10:02:42.8150328Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
2026-06-15T10:02:42.8150422Z               "line": 30
2026-06-15T10:02:42.8150503Z             }
2026-06-15T10:02:42.8150599Z           ]
2026-06-15T10:02:42.8150681Z         }
2026-06-15T10:02:42.8150771Z       }
2026-06-15T10:02:42.8150852Z     },
2026-06-15T10:02:42.8150929Z     {
2026-06-15T10:02:42.8151043Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-15T10:02:42.8151287Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-15T10:02:42.8151390Z       "requiredStages": [
2026-06-15T10:02:42.8151467Z         "impl",
2026-06-15T10:02:42.8151559Z         "unit"
2026-06-15T10:02:42.8151640Z       ],
2026-06-15T10:02:42.8151719Z       "stages": {
2026-06-15T10:02:42.8151804Z         "doc": {
2026-06-15T10:02:42.8151899Z           "complete": true,
2026-06-15T10:02:42.8151991Z           "evidence": [
2026-06-15T10:02:42.8152071Z             {
2026-06-15T10:02:42.8152176Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T10:02:42.8152272Z               "line": 139
2026-06-15T10:02:42.8152358Z             }
2026-06-15T10:02:42.8152434Z           ]
2026-06-15T10:02:42.8152520Z         },
2026-06-15T10:02:42.8152601Z         "impl": {
2026-06-15T10:02:42.8152697Z           "complete": true,
2026-06-15T10:02:42.8152796Z           "evidence": [
2026-06-15T10:02:42.8152873Z             {
2026-06-15T10:02:42.8152997Z               "path": "crates/spt-store/src/db.rs",
2026-06-15T10:02:42.8153082Z               "line": 29
2026-06-15T10:02:42.8153168Z             },
2026-06-15T10:02:42.8153259Z             {
2026-06-15T10:02:42.8153369Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T10:02:42.8153459Z               "line": 101
2026-06-15T10:02:42.8153537Z             },
2026-06-15T10:02:42.8153621Z             {
2026-06-15T10:02:42.8153740Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T10:02:42.8153832Z               "line": 30
2026-06-15T10:02:42.8153912Z             },
2026-06-15T10:02:42.8153993Z             {
2026-06-15T10:02:42.8154111Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.8154187Z               "line": 48
2026-06-15T10:02:42.8154281Z             }
2026-06-15T10:02:42.8154357Z           ]
2026-06-15T10:02:42.8154452Z         },
2026-06-15T10:02:42.8154534Z         "int": {
2026-06-15T10:02:42.8154629Z           "complete": false,
2026-06-15T10:02:42.8154723Z           "evidence": []
2026-06-15T10:02:42.8154801Z         },
2026-06-15T10:02:42.8154887Z         "unit": {
2026-06-15T10:02:42.8154981Z           "complete": true,
2026-06-15T10:02:42.8155077Z           "evidence": [
2026-06-15T10:02:42.8155163Z             {
2026-06-15T10:02:42.8155277Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T10:02:42.8155377Z               "line": 162
2026-06-15T10:02:42.8155454Z             }
2026-06-15T10:02:42.8155535Z           ]
2026-06-15T10:02:42.8155621Z         }
2026-06-15T10:02:42.8155702Z       }
2026-06-15T10:02:42.8155907Z     },
2026-06-15T10:02:42.8155992Z     {
2026-06-15T10:02:42.8156108Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-15T10:02:42.8156489Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-15T10:02:42.8156675Z       "requiredStages": [
2026-06-15T10:02:42.8156766Z         "doc",
2026-06-15T10:02:42.8156855Z         "impl",
2026-06-15T10:02:42.8156949Z         "unit"
2026-06-15T10:02:42.8157031Z       ],
2026-06-15T10:02:42.8157121Z       "stages": {
2026-06-15T10:02:42.8157205Z         "doc": {
2026-06-15T10:02:42.8157305Z           "complete": true,
2026-06-15T10:02:42.8157396Z           "evidence": [
2026-06-15T10:02:42.8157487Z             {
2026-06-15T10:02:42.8157595Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T10:02:42.8157687Z               "line": 151
2026-06-15T10:02:42.8157772Z             }
2026-06-15T10:02:42.8157849Z           ]
2026-06-15T10:02:42.8157934Z         },
2026-06-15T10:02:42.8158031Z         "impl": {
2026-06-15T10:02:42.8158126Z           "complete": true,
2026-06-15T10:02:42.8158220Z           "evidence": [
2026-06-15T10:02:42.8158312Z             {
2026-06-15T10:02:42.8158425Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T10:02:42.8158511Z               "line": 22
2026-06-15T10:02:42.8158592Z             }
2026-06-15T10:02:42.8158670Z           ]
2026-06-15T10:02:42.8158750Z         },
2026-06-15T10:02:42.8158840Z         "int": {
2026-06-15T10:02:42.8158922Z           "complete": false,
2026-06-15T10:02:42.8159088Z           "evidence": []
2026-06-15T10:02:42.8159164Z         },
2026-06-15T10:02:42.8159247Z         "unit": {
2026-06-15T10:02:42.8159328Z           "complete": true,
2026-06-15T10:02:42.8159421Z           "evidence": [
2026-06-15T10:02:42.8159507Z             {
2026-06-15T10:02:42.8159616Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T10:02:42.8159701Z               "line": 298
2026-06-15T10:02:42.8159776Z             }
2026-06-15T10:02:42.8159857Z           ]
2026-06-15T10:02:42.8159934Z         }
2026-06-15T10:02:42.8160026Z       }
2026-06-15T10:02:42.8160119Z     },
2026-06-15T10:02:42.8160196Z     {
2026-06-15T10:02:42.8160316Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-15T10:02:42.8160763Z       "title": "Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)",
2026-06-15T10:02:42.8160859Z       "requiredStages": [
2026-06-15T10:02:42.8160945Z         "impl",
2026-06-15T10:02:42.8161026Z         "unit"
2026-06-15T10:02:42.8161130Z       ],
2026-06-15T10:02:42.8161213Z       "stages": {
2026-06-15T10:02:42.8161293Z         "doc": {
2026-06-15T10:02:42.8161374Z           "complete": true,
2026-06-15T10:02:42.8161474Z           "evidence": [
2026-06-15T10:02:42.8161556Z             {
2026-06-15T10:02:42.8161664Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T10:02:42.8161755Z               "line": 145
2026-06-15T10:02:42.8161847Z             }
2026-06-15T10:02:42.8161936Z           ]
2026-06-15T10:02:42.8162017Z         },
2026-06-15T10:02:42.8162099Z         "impl": {
2026-06-15T10:02:42.8162191Z           "complete": true,
2026-06-15T10:02:42.8162284Z           "evidence": [
2026-06-15T10:02:42.8162374Z             {
2026-06-15T10:02:42.8162489Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T10:02:42.8162585Z               "line": 160
2026-06-15T10:02:42.8162660Z             },
2026-06-15T10:02:42.8162750Z             {
2026-06-15T10:02:42.8162871Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8162956Z               "line": 200
2026-06-15T10:02:42.8163045Z             },
2026-06-15T10:02:42.8163119Z             {
2026-06-15T10:02:42.8163247Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8163332Z               "line": 298
2026-06-15T10:02:42.8163423Z             },
2026-06-15T10:02:42.8163495Z             {
2026-06-15T10:02:42.8163709Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T10:02:42.8163800Z               "line": 20
2026-06-15T10:02:42.8163886Z             }
2026-06-15T10:02:42.8164058Z           ]
2026-06-15T10:02:42.8164139Z         },
2026-06-15T10:02:42.8164219Z         "int": {
2026-06-15T10:02:42.8164315Z           "complete": false,
2026-06-15T10:02:42.8164402Z           "evidence": []
2026-06-15T10:02:42.8164477Z         },
2026-06-15T10:02:42.8164558Z         "unit": {
2026-06-15T10:02:42.8164657Z           "complete": true,
2026-06-15T10:02:42.8164738Z           "evidence": [
2026-06-15T10:02:42.8164818Z             {
2026-06-15T10:02:42.8164936Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8165017Z               "line": 885
2026-06-15T10:02:42.8165109Z             },
2026-06-15T10:02:42.8165184Z             {
2026-06-15T10:02:42.8165303Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-15T10:02:42.8165384Z               "line": 88
2026-06-15T10:02:42.8165475Z             },
2026-06-15T10:02:42.8165565Z             {
2026-06-15T10:02:42.8168198Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8168328Z               "line": 819
2026-06-15T10:02:42.8168409Z             },
2026-06-15T10:02:42.8168484Z             {
2026-06-15T10:02:42.8168624Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8168724Z               "line": 838
2026-06-15T10:02:42.8168804Z             },
2026-06-15T10:02:42.8168881Z             {
2026-06-15T10:02:42.8169085Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T10:02:42.8169167Z               "line": 279
2026-06-15T10:02:42.8169253Z             },
2026-06-15T10:02:42.8169324Z             {
2026-06-15T10:02:42.8169448Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T10:02:42.8169540Z               "line": 82
2026-06-15T10:02:42.8169625Z             },
2026-06-15T10:02:42.8169710Z             {
2026-06-15T10:02:42.8169826Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T10:02:42.8169917Z               "line": 99
2026-06-15T10:02:42.8169991Z             },
2026-06-15T10:02:42.8170076Z             {
2026-06-15T10:02:42.8170191Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-15T10:02:42.8170280Z               "line": 119
2026-06-15T10:02:42.8170355Z             }
2026-06-15T10:02:42.8170441Z           ]
2026-06-15T10:02:42.8170533Z         }
2026-06-15T10:02:42.8170609Z       }
2026-06-15T10:02:42.8170689Z     },
2026-06-15T10:02:42.8170770Z     {
2026-06-15T10:02:42.8170885Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-15T10:02:42.8172214Z       "title": "A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)",
2026-06-15T10:02:42.8172330Z       "requiredStages": [
2026-06-15T10:02:42.8172412Z         "doc",
2026-06-15T10:02:42.8172506Z         "impl",
2026-06-15T10:02:42.8172582Z         "unit"
2026-06-15T10:02:42.8172664Z       ],
2026-06-15T10:02:42.8172746Z       "stages": {
2026-06-15T10:02:42.8172825Z         "doc": {
2026-06-15T10:02:42.8172915Z           "complete": true,
2026-06-15T10:02:42.8173010Z           "evidence": [
2026-06-15T10:02:42.8173092Z             {
2026-06-15T10:02:42.8173196Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T10:02:42.8173291Z               "line": 157
2026-06-15T10:02:42.8173368Z             }
2026-06-15T10:02:42.8173449Z           ]
2026-06-15T10:02:42.8173530Z         },
2026-06-15T10:02:42.8173610Z         "impl": {
2026-06-15T10:02:42.8173708Z           "complete": true,
2026-06-15T10:02:42.8173793Z           "evidence": [
2026-06-15T10:02:42.8174036Z             {
2026-06-15T10:02:42.8174164Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T10:02:42.8174254Z               "line": 137
2026-06-15T10:02:42.8174422Z             },
2026-06-15T10:02:42.8174503Z             {
2026-06-15T10:02:42.8174638Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8174718Z               "line": 512
2026-06-15T10:02:42.8174803Z             },
2026-06-15T10:02:42.8174879Z             {
2026-06-15T10:02:42.8175009Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8175108Z               "line": 519
2026-06-15T10:02:42.8175183Z             },
2026-06-15T10:02:42.8175260Z             {
2026-06-15T10:02:42.8175378Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8175463Z               "line": 227
2026-06-15T10:02:42.8175543Z             }
2026-06-15T10:02:42.8175630Z           ]
2026-06-15T10:02:42.8175721Z         },
2026-06-15T10:02:42.8175810Z         "int": {
2026-06-15T10:02:42.8175901Z           "complete": false,
2026-06-15T10:02:42.8175993Z           "evidence": []
2026-06-15T10:02:42.8176083Z         },
2026-06-15T10:02:42.8176172Z         "unit": {
2026-06-15T10:02:42.8176269Z           "complete": true,
2026-06-15T10:02:42.8176355Z           "evidence": [
2026-06-15T10:02:42.8176435Z             {
2026-06-15T10:02:42.8176565Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8176655Z               "line": 1515
2026-06-15T10:02:42.8176741Z             },
2026-06-15T10:02:42.8176826Z             {
2026-06-15T10:02:42.8176946Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8177022Z               "line": 1573
2026-06-15T10:02:42.8177098Z             },
2026-06-15T10:02:42.8177180Z             {
2026-06-15T10:02:42.8177303Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8177394Z               "line": 851
2026-06-15T10:02:42.8177471Z             }
2026-06-15T10:02:42.8177561Z           ]
2026-06-15T10:02:42.8177646Z         }
2026-06-15T10:02:42.8177723Z       }
2026-06-15T10:02:42.8177800Z     },
2026-06-15T10:02:42.8177886Z     {
2026-06-15T10:02:42.8178008Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-15T10:02:42.8178189Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-15T10:02:42.8178287Z       "requiredStages": [
2026-06-15T10:02:42.8178372Z         "impl",
2026-06-15T10:02:42.8178454Z         "unit"
2026-06-15T10:02:42.8178526Z       ],
2026-06-15T10:02:42.8178612Z       "stages": {
2026-06-15T10:02:42.8178701Z         "doc": {
2026-06-15T10:02:42.8178793Z           "complete": false,
2026-06-15T10:02:42.8178883Z           "evidence": []
2026-06-15T10:02:42.8179044Z         },
2026-06-15T10:02:42.8179127Z         "impl": {
2026-06-15T10:02:42.8179221Z           "complete": true,
2026-06-15T10:02:42.8179307Z           "evidence": [
2026-06-15T10:02:42.8179379Z             {
2026-06-15T10:02:42.8179499Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T10:02:42.8179589Z               "line": 15
2026-06-15T10:02:42.8179674Z             },
2026-06-15T10:02:42.8179752Z             {
2026-06-15T10:02:42.8179884Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T10:02:42.8179960Z               "line": 55
2026-06-15T10:02:42.8180042Z             },
2026-06-15T10:02:42.8180119Z             {
2026-06-15T10:02:42.8180236Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T10:02:42.8180328Z               "line": 66
2026-06-15T10:02:42.8180415Z             },
2026-06-15T10:02:42.8180537Z             {
2026-06-15T10:02:42.8180664Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T10:02:42.8180751Z               "line": 115
2026-06-15T10:02:42.8180836Z             },
2026-06-15T10:02:42.8180920Z             {
2026-06-15T10:02:42.8181035Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T10:02:42.8181116Z               "line": 138
2026-06-15T10:02:42.8181301Z             }
2026-06-15T10:02:42.8181379Z           ]
2026-06-15T10:02:42.8181464Z         },
2026-06-15T10:02:42.8181540Z         "int": {
2026-06-15T10:02:42.8181755Z           "complete": false,
2026-06-15T10:02:42.8181873Z           "evidence": []
2026-06-15T10:02:42.8181955Z         },
2026-06-15T10:02:42.8182032Z         "unit": {
2026-06-15T10:02:42.8182126Z           "complete": true,
2026-06-15T10:02:42.8182217Z           "evidence": [
2026-06-15T10:02:42.8182294Z             {
2026-06-15T10:02:42.8182403Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T10:02:42.8182494Z               "line": 149
2026-06-15T10:02:42.8182570Z             },
2026-06-15T10:02:42.8182652Z             {
2026-06-15T10:02:42.8182760Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T10:02:42.8182851Z               "line": 155
2026-06-15T10:02:42.8182924Z             },
2026-06-15T10:02:42.8183006Z             {
2026-06-15T10:02:42.8183118Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T10:02:42.8183205Z               "line": 169
2026-06-15T10:02:42.8183287Z             },
2026-06-15T10:02:42.8183371Z             {
2026-06-15T10:02:42.8183485Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T10:02:42.8183571Z               "line": 178
2026-06-15T10:02:42.8183652Z             },
2026-06-15T10:02:42.8183733Z             {
2026-06-15T10:02:42.8183851Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T10:02:42.8183943Z               "line": 195
2026-06-15T10:02:42.8184019Z             },
2026-06-15T10:02:42.8184109Z             {
2026-06-15T10:02:42.8184219Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T10:02:42.8184310Z               "line": 208
2026-06-15T10:02:42.8184391Z             },
2026-06-15T10:02:42.8184467Z             {
2026-06-15T10:02:42.8184573Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T10:02:42.8184667Z               "line": 271
2026-06-15T10:02:42.8184762Z             },
2026-06-15T10:02:42.8184849Z             {
2026-06-15T10:02:42.8184958Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T10:02:42.8185058Z               "line": 290
2026-06-15T10:02:42.8185139Z             },
2026-06-15T10:02:42.8185231Z             {
2026-06-15T10:02:42.8185344Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T10:02:42.8185435Z               "line": 319
2026-06-15T10:02:42.8185512Z             }
2026-06-15T10:02:42.8185602Z           ]
2026-06-15T10:02:42.8185678Z         }
2026-06-15T10:02:42.8185758Z       }
2026-06-15T10:02:42.8185854Z     },
2026-06-15T10:02:42.8185924Z     {
2026-06-15T10:02:42.8186037Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-15T10:02:42.8186304Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-15T10:02:42.8186389Z       "requiredStages": [
2026-06-15T10:02:42.8186476Z         "impl",
2026-06-15T10:02:42.8186558Z         "unit",
2026-06-15T10:02:42.8186647Z         "int"
2026-06-15T10:02:42.8186728Z       ],
2026-06-15T10:02:42.8186815Z       "stages": {
2026-06-15T10:02:42.8186891Z         "doc": {
2026-06-15T10:02:42.8186990Z           "complete": false,
2026-06-15T10:02:42.8187081Z           "evidence": []
2026-06-15T10:02:42.8187163Z         },
2026-06-15T10:02:42.8187258Z         "impl": {
2026-06-15T10:02:42.8187348Z           "complete": true,
2026-06-15T10:02:42.8187445Z           "evidence": [
2026-06-15T10:02:42.8187534Z             {
2026-06-15T10:02:42.8187649Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.8187735Z               "line": 447
2026-06-15T10:02:42.8187816Z             },
2026-06-15T10:02:42.8187887Z             {
2026-06-15T10:02:42.8187992Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.8188093Z               "line": 867
2026-06-15T10:02:42.8188169Z             },
2026-06-15T10:02:42.8188249Z             {
2026-06-15T10:02:42.8188365Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.8188521Z               "line": 912
2026-06-15T10:02:42.8188611Z             },
2026-06-15T10:02:42.8188758Z             {
2026-06-15T10:02:42.8188871Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.8189038Z               "line": 937
2026-06-15T10:02:42.8189110Z             },
2026-06-15T10:02:42.8189205Z             {
2026-06-15T10:02:42.8189314Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.8189406Z               "line": 987
2026-06-15T10:02:42.8189482Z             },
2026-06-15T10:02:42.8189566Z             {
2026-06-15T10:02:42.8189682Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.8189777Z               "line": 1113
2026-06-15T10:02:42.8189858Z             },
2026-06-15T10:02:42.8189934Z             {
2026-06-15T10:02:42.8190054Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.8190134Z               "line": 1244
2026-06-15T10:02:42.8190220Z             },
2026-06-15T10:02:42.8190302Z             {
2026-06-15T10:02:42.8190416Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.8190511Z               "line": 1292
2026-06-15T10:02:42.8190588Z             },
2026-06-15T10:02:42.8190674Z             {
2026-06-15T10:02:42.8190782Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T10:02:42.8190878Z               "line": 46
2026-06-15T10:02:42.8190965Z             },
2026-06-15T10:02:42.8191041Z             {
2026-06-15T10:02:42.8191158Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T10:02:42.8191234Z               "line": 167
2026-06-15T10:02:42.8191320Z             },
2026-06-15T10:02:42.8191396Z             {
2026-06-15T10:02:42.8191513Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T10:02:42.8191604Z               "line": 132
2026-06-15T10:02:42.8191686Z             },
2026-06-15T10:02:42.8191771Z             {
2026-06-15T10:02:42.8191885Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.8191977Z               "line": 137
2026-06-15T10:02:42.8192072Z             },
2026-06-15T10:02:42.8192152Z             {
2026-06-15T10:02:42.8192273Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.8192348Z               "line": 183
2026-06-15T10:02:42.8192424Z             }
2026-06-15T10:02:42.8192505Z           ]
2026-06-15T10:02:42.8192587Z         },
2026-06-15T10:02:42.8192677Z         "int": {
2026-06-15T10:02:42.8192757Z           "complete": true,
2026-06-15T10:02:42.8192844Z           "evidence": [
2026-06-15T10:02:42.8192931Z             {
2026-06-15T10:02:42.8193063Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-15T10:02:42.8193144Z               "line": 27
2026-06-15T10:02:42.8193231Z             },
2026-06-15T10:02:42.8193320Z             {
2026-06-15T10:02:42.8193440Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-15T10:02:42.8193527Z               "line": 129
2026-06-15T10:02:42.8193612Z             },
2026-06-15T10:02:42.8193688Z             {
2026-06-15T10:02:42.8193809Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-15T10:02:42.8193908Z               "line": 200
2026-06-15T10:02:42.8193992Z             }
2026-06-15T10:02:42.8194073Z           ]
2026-06-15T10:02:42.8194154Z         },
2026-06-15T10:02:42.8194236Z         "unit": {
2026-06-15T10:02:42.8194326Z           "complete": true,
2026-06-15T10:02:42.8194416Z           "evidence": [
2026-06-15T10:02:42.8194503Z             {
2026-06-15T10:02:42.8194622Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T10:02:42.8194702Z               "line": 313
2026-06-15T10:02:42.8194789Z             },
2026-06-15T10:02:42.8194865Z             {
2026-06-15T10:02:42.8194983Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T10:02:42.8195070Z               "line": 345
2026-06-15T10:02:42.8195147Z             },
2026-06-15T10:02:42.8195227Z             {
2026-06-15T10:02:42.8195438Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-15T10:02:42.8195528Z               "line": 366
2026-06-15T10:02:42.8195609Z             },
2026-06-15T10:02:42.8195786Z             {
2026-06-15T10:02:42.8195904Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T10:02:42.8196000Z               "line": 508
2026-06-15T10:02:42.8196087Z             },
2026-06-15T10:02:42.8196162Z             {
2026-06-15T10:02:42.8196284Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T10:02:42.8196370Z               "line": 289
2026-06-15T10:02:42.8196461Z             },
2026-06-15T10:02:42.8196549Z             {
2026-06-15T10:02:42.8196663Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T10:02:42.8196759Z               "line": 230
2026-06-15T10:02:42.8196841Z             },
2026-06-15T10:02:42.8196916Z             {
2026-06-15T10:02:42.8197026Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.8197122Z               "line": 526
2026-06-15T10:02:42.8197207Z             },
2026-06-15T10:02:42.8197288Z             {
2026-06-15T10:02:42.8197408Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.8197489Z               "line": 556
2026-06-15T10:02:42.8197570Z             }
2026-06-15T10:02:42.8197646Z           ]
2026-06-15T10:02:42.8197718Z         }
2026-06-15T10:02:42.8197794Z       }
2026-06-15T10:02:42.8197884Z     },
2026-06-15T10:02:42.8197961Z     {
2026-06-15T10:02:42.8198085Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
2026-06-15T10:02:42.8199835Z       "title": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.",
2026-06-15T10:02:42.8199932Z       "requiredStages": [
2026-06-15T10:02:42.8200013Z         "doc",
2026-06-15T10:02:42.8200098Z         "impl",
2026-06-15T10:02:42.8200174Z         "unit"
2026-06-15T10:02:42.8200256Z       ],
2026-06-15T10:02:42.8200333Z       "stages": {
2026-06-15T10:02:42.8200422Z         "doc": {
2026-06-15T10:02:42.8200518Z           "complete": true,
2026-06-15T10:02:42.8200604Z           "evidence": [
2026-06-15T10:02:42.8200680Z             {
2026-06-15T10:02:42.8200789Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T10:02:42.8200872Z               "line": 307
2026-06-15T10:02:42.8200953Z             }
2026-06-15T10:02:42.8201042Z           ]
2026-06-15T10:02:42.8201138Z         },
2026-06-15T10:02:42.8201210Z         "impl": {
2026-06-15T10:02:42.8201305Z           "complete": true,
2026-06-15T10:02:42.8201381Z           "evidence": [
2026-06-15T10:02:42.8201477Z             {
2026-06-15T10:02:42.8201606Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T10:02:42.8201704Z               "line": 33
2026-06-15T10:02:42.8201799Z             },
2026-06-15T10:02:42.8201876Z             {
2026-06-15T10:02:42.8202012Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T10:02:42.8202102Z               "line": 39
2026-06-15T10:02:42.8202188Z             }
2026-06-15T10:02:42.8202266Z           ]
2026-06-15T10:02:42.8202340Z         },
2026-06-15T10:02:42.8202431Z         "int": {
2026-06-15T10:02:42.8202523Z           "complete": false,
2026-06-15T10:02:42.8202618Z           "evidence": []
2026-06-15T10:02:42.8202698Z         },
2026-06-15T10:02:42.8202790Z         "unit": {
2026-06-15T10:02:42.8202880Z           "complete": true,
2026-06-15T10:02:42.8202970Z           "evidence": [
2026-06-15T10:02:42.8203046Z             {
2026-06-15T10:02:42.8203171Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-15T10:02:42.8203385Z               "line": 95
2026-06-15T10:02:42.8203467Z             }
2026-06-15T10:02:42.8203552Z           ]
2026-06-15T10:02:42.8203719Z         }
2026-06-15T10:02:42.8203806Z       }
2026-06-15T10:02:42.8203880Z     },
2026-06-15T10:02:42.8203957Z     {
2026-06-15T10:02:42.8204059Z       "id": "REQ-HAZARD-SELF-ELEVATE",
2026-06-15T10:02:42.8206216Z       "title": "Self-elevation (REQ-ELEVATE-1) re-runs the EXACT original invocation with the binary's ABSOLUTE exe path — never widening privilege scope, never adding/altering args, never via a PATH-resolved bare name, never via a shell-interpolated command string (argv-array only, no `sh -c`); the elevated child drops state back to the user (composes with the 5.7 de-elevation) and NEVER re-elevates (loop-safe: decide_elevation_path returns AlreadyElevated whenever the process is already Elevated, on every OS). The user's UAC/polkit/sudo prompt is the only consent gate — we never bypass it; the print-hint floor prints the absolute-path command too. The unprivileged parent never depends on (pipes/captures) the privileged child's stdout.",
2026-06-15T10:02:42.8206318Z       "requiredStages": [
2026-06-15T10:02:42.8206412Z         "unit"
2026-06-15T10:02:42.8206493Z       ],
2026-06-15T10:02:42.8206579Z       "stages": {
2026-06-15T10:02:42.8206657Z         "doc": {
2026-06-15T10:02:42.8206750Z           "complete": false,
2026-06-15T10:02:42.8206840Z           "evidence": []
2026-06-15T10:02:42.8206916Z         },
2026-06-15T10:02:42.8206997Z         "impl": {
2026-06-15T10:02:42.8207086Z           "complete": true,
2026-06-15T10:02:42.8207180Z           "evidence": [
2026-06-15T10:02:42.8207262Z             {
2026-06-15T10:02:42.8207363Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8207448Z               "line": 3080
2026-06-15T10:02:42.8207519Z             },
2026-06-15T10:02:42.8207606Z             {
2026-06-15T10:02:42.8207706Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8207801Z               "line": 3132
2026-06-15T10:02:42.8207891Z             },
2026-06-15T10:02:42.8207963Z             {
2026-06-15T10:02:42.8208058Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8208148Z               "line": 3177
2026-06-15T10:02:42.8208236Z             },
2026-06-15T10:02:42.8208311Z             {
2026-06-15T10:02:42.8208430Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8208521Z               "line": 92
2026-06-15T10:02:42.8208602Z             },
2026-06-15T10:02:42.8208683Z             {
2026-06-15T10:02:42.8208788Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8208885Z               "line": 148
2026-06-15T10:02:42.8209021Z             },
2026-06-15T10:02:42.8209116Z             {
2026-06-15T10:02:42.8209223Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8209312Z               "line": 192
2026-06-15T10:02:42.8209403Z             },
2026-06-15T10:02:42.8209475Z             {
2026-06-15T10:02:42.8209585Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8209674Z               "line": 200
2026-06-15T10:02:42.8209764Z             },
2026-06-15T10:02:42.8209846Z             {
2026-06-15T10:02:42.8209944Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8210038Z               "line": 211
2026-06-15T10:02:42.8210115Z             },
2026-06-15T10:02:42.8210196Z             {
2026-06-15T10:02:42.8210292Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8210386Z               "line": 265
2026-06-15T10:02:42.8210478Z             },
2026-06-15T10:02:42.8210554Z             {
2026-06-15T10:02:42.8210663Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8210749Z               "line": 279
2026-06-15T10:02:42.8210826Z             }
2026-06-15T10:02:42.8210902Z           ]
2026-06-15T10:02:42.8210992Z         },
2026-06-15T10:02:42.8211078Z         "int": {
2026-06-15T10:02:42.8211169Z           "complete": false,
2026-06-15T10:02:42.8211359Z           "evidence": []
2026-06-15T10:02:42.8211442Z         },
2026-06-15T10:02:42.8211541Z         "unit": {
2026-06-15T10:02:42.8211631Z           "complete": true,
2026-06-15T10:02:42.8211813Z           "evidence": [
2026-06-15T10:02:42.8211902Z             {
2026-06-15T10:02:42.8211998Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8212090Z               "line": 419
2026-06-15T10:02:42.8212175Z             },
2026-06-15T10:02:42.8212250Z             {
2026-06-15T10:02:42.8212354Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8212450Z               "line": 470
2026-06-15T10:02:42.8212534Z             },
2026-06-15T10:02:42.8212614Z             {
2026-06-15T10:02:42.8212715Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8212806Z               "line": 499
2026-06-15T10:02:42.8212882Z             },
2026-06-15T10:02:42.8212962Z             {
2026-06-15T10:02:42.8213073Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8213169Z               "line": 526
2026-06-15T10:02:42.8213248Z             }
2026-06-15T10:02:42.8213335Z           ]
2026-06-15T10:02:42.8213421Z         }
2026-06-15T10:02:42.8213497Z       }
2026-06-15T10:02:42.8213587Z     },
2026-06-15T10:02:42.8213669Z     {
2026-06-15T10:02:42.8213783Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-15T10:02:42.8213964Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-15T10:02:42.8214056Z       "requiredStages": [
2026-06-15T10:02:42.8214131Z         "impl",
2026-06-15T10:02:42.8214207Z         "unit"
2026-06-15T10:02:42.8214284Z       ],
2026-06-15T10:02:42.8214375Z       "stages": {
2026-06-15T10:02:42.8214459Z         "doc": {
2026-06-15T10:02:42.8214551Z           "complete": false,
2026-06-15T10:02:42.8214637Z           "evidence": []
2026-06-15T10:02:42.8214714Z         },
2026-06-15T10:02:42.8214803Z         "impl": {
2026-06-15T10:02:42.8214890Z           "complete": true,
2026-06-15T10:02:42.8214991Z           "evidence": [
2026-06-15T10:02:42.8215084Z             {
2026-06-15T10:02:42.8215207Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.8215303Z               "line": 62
2026-06-15T10:02:42.8215381Z             },
2026-06-15T10:02:42.8215469Z             {
2026-06-15T10:02:42.8215589Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.8215685Z               "line": 71
2026-06-15T10:02:42.8215779Z             },
2026-06-15T10:02:42.8215851Z             {
2026-06-15T10:02:42.8215981Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.8216062Z               "line": 80
2026-06-15T10:02:42.8216151Z             },
2026-06-15T10:02:42.8216233Z             {
2026-06-15T10:02:42.8216361Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.8216456Z               "line": 88
2026-06-15T10:02:42.8216529Z             },
2026-06-15T10:02:42.8216610Z             {
2026-06-15T10:02:42.8216724Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8216819Z               "line": 33
2026-06-15T10:02:42.8216897Z             },
2026-06-15T10:02:42.8216981Z             {
2026-06-15T10:02:42.8217096Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8217178Z               "line": 65
2026-06-15T10:02:42.8217268Z             },
2026-06-15T10:02:42.8217348Z             {
2026-06-15T10:02:42.8217466Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8217562Z               "line": 74
2026-06-15T10:02:42.8217641Z             },
2026-06-15T10:02:42.8217722Z             {
2026-06-15T10:02:42.8217822Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8217913Z               "line": 93
2026-06-15T10:02:42.8217989Z             },
2026-06-15T10:02:42.8218069Z             {
2026-06-15T10:02:42.8218190Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8218276Z               "line": 102
2026-06-15T10:02:42.8218447Z             },
2026-06-15T10:02:42.8218523Z             {
2026-06-15T10:02:42.8218637Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8218791Z               "line": 111
2026-06-15T10:02:42.8218876Z             },
2026-06-15T10:02:42.8219033Z             {
2026-06-15T10:02:42.8219149Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8219238Z               "line": 122
2026-06-15T10:02:42.8219319Z             },
2026-06-15T10:02:42.8219401Z             {
2026-06-15T10:02:42.8219510Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8219605Z               "line": 140
2026-06-15T10:02:42.8219696Z             },
2026-06-15T10:02:42.8219774Z             {
2026-06-15T10:02:42.8219896Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8219987Z               "line": 149
2026-06-15T10:02:42.8220064Z             },
2026-06-15T10:02:42.8220140Z             {
2026-06-15T10:02:42.8220258Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8220348Z               "line": 158
2026-06-15T10:02:42.8220420Z             },
2026-06-15T10:02:42.8220509Z             {
2026-06-15T10:02:42.8220612Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8220708Z               "line": 169
2026-06-15T10:02:42.8220795Z             },
2026-06-15T10:02:42.8220875Z             {
2026-06-15T10:02:42.8220989Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8221086Z               "line": 177
2026-06-15T10:02:42.8221181Z             },
2026-06-15T10:02:42.8221256Z             {
2026-06-15T10:02:42.8221367Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8221448Z               "line": 186
2026-06-15T10:02:42.8221542Z             },
2026-06-15T10:02:42.8221624Z             {
2026-06-15T10:02:42.8221729Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8221824Z               "line": 195
2026-06-15T10:02:42.8221914Z             },
2026-06-15T10:02:42.8221992Z             {
2026-06-15T10:02:42.8222096Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8222191Z               "line": 204
2026-06-15T10:02:42.8222273Z             },
2026-06-15T10:02:42.8222349Z             {
2026-06-15T10:02:42.8222463Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8222548Z               "line": 216
2026-06-15T10:02:42.8222645Z             },
2026-06-15T10:02:42.8222721Z             {
2026-06-15T10:02:42.8222838Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8222919Z               "line": 223
2026-06-15T10:02:42.8223000Z             },
2026-06-15T10:02:42.8223090Z             {
2026-06-15T10:02:42.8223189Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8223285Z               "line": 232
2026-06-15T10:02:42.8223371Z             },
2026-06-15T10:02:42.8223451Z             {
2026-06-15T10:02:42.8223565Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8223662Z               "line": 239
2026-06-15T10:02:42.8223743Z             },
2026-06-15T10:02:42.8223823Z             {
2026-06-15T10:02:42.8223938Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8224033Z               "line": 306
2026-06-15T10:02:42.8224104Z             },
2026-06-15T10:02:42.8224190Z             {
2026-06-15T10:02:42.8224291Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8224386Z               "line": 318
2026-06-15T10:02:42.8224462Z             },
2026-06-15T10:02:42.8224558Z             {
2026-06-15T10:02:42.8224672Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8224762Z               "line": 405
2026-06-15T10:02:42.8224844Z             }
2026-06-15T10:02:42.8224921Z           ]
2026-06-15T10:02:42.8225010Z         },
2026-06-15T10:02:42.8225091Z         "int": {
2026-06-15T10:02:42.8225188Z           "complete": false,
2026-06-15T10:02:42.8225383Z           "evidence": []
2026-06-15T10:02:42.8225469Z         },
2026-06-15T10:02:42.8225555Z         "unit": {
2026-06-15T10:02:42.8225654Z           "complete": true,
2026-06-15T10:02:42.8225858Z           "evidence": [
2026-06-15T10:02:42.8225936Z             {
2026-06-15T10:02:42.8226049Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8226149Z               "line": 487
2026-06-15T10:02:42.8226226Z             },
2026-06-15T10:02:42.8226311Z             {
2026-06-15T10:02:42.8226425Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8226517Z               "line": 528
2026-06-15T10:02:42.8226603Z             },
2026-06-15T10:02:42.8226692Z             {
2026-06-15T10:02:42.8226808Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8226898Z               "line": 541
2026-06-15T10:02:42.8226969Z             },
2026-06-15T10:02:42.8227055Z             {
2026-06-15T10:02:42.8227171Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8227265Z               "line": 627
2026-06-15T10:02:42.8227341Z             }
2026-06-15T10:02:42.8227438Z           ]
2026-06-15T10:02:42.8227518Z         }
2026-06-15T10:02:42.8227608Z       }
2026-06-15T10:02:42.8227680Z     },
2026-06-15T10:02:42.8227757Z     {
2026-06-15T10:02:42.8227852Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-15T10:02:42.8228051Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-15T10:02:42.8228155Z       "requiredStages": [
2026-06-15T10:02:42.8228229Z         "impl",
2026-06-15T10:02:42.8228319Z         "unit"
2026-06-15T10:02:42.8228401Z       ],
2026-06-15T10:02:42.8228493Z       "stages": {
2026-06-15T10:02:42.8228573Z         "doc": {
2026-06-15T10:02:42.8228668Z           "complete": false,
2026-06-15T10:02:42.8228759Z           "evidence": []
2026-06-15T10:02:42.8228836Z         },
2026-06-15T10:02:42.8228925Z         "impl": {
2026-06-15T10:02:42.8229112Z           "complete": true,
2026-06-15T10:02:42.8229202Z           "evidence": [
2026-06-15T10:02:42.8229287Z             {
2026-06-15T10:02:42.8229403Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T10:02:42.8229503Z               "line": 152
2026-06-15T10:02:42.8229588Z             },
2026-06-15T10:02:42.8229675Z             {
2026-06-15T10:02:42.8229793Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.8229889Z               "line": 167
2026-06-15T10:02:42.8229966Z             }
2026-06-15T10:02:42.8230052Z           ]
2026-06-15T10:02:42.8230136Z         },
2026-06-15T10:02:42.8230223Z         "int": {
2026-06-15T10:02:42.8230314Z           "complete": false,
2026-06-15T10:02:42.8230409Z           "evidence": []
2026-06-15T10:02:42.8230494Z         },
2026-06-15T10:02:42.8230566Z         "unit": {
2026-06-15T10:02:42.8230667Z           "complete": true,
2026-06-15T10:02:42.8230752Z           "evidence": [
2026-06-15T10:02:42.8230832Z             {
2026-06-15T10:02:42.8230951Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T10:02:42.8231045Z               "line": 274
2026-06-15T10:02:42.8231135Z             },
2026-06-15T10:02:42.8231206Z             {
2026-06-15T10:02:42.8231336Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.8231430Z               "line": 712
2026-06-15T10:02:42.8231511Z             },
2026-06-15T10:02:42.8231603Z             {
2026-06-15T10:02:42.8231717Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.8231812Z               "line": 725
2026-06-15T10:02:42.8231893Z             }
2026-06-15T10:02:42.8231984Z           ]
2026-06-15T10:02:42.8232065Z         }
2026-06-15T10:02:42.8232136Z       }
2026-06-15T10:02:42.8232227Z     },
2026-06-15T10:02:42.8232304Z     {
2026-06-15T10:02:42.8232422Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-15T10:02:42.8232557Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-15T10:02:42.8232656Z       "requiredStages": [
2026-06-15T10:02:42.8232751Z         "impl",
2026-06-15T10:02:42.8232928Z         "unit"
2026-06-15T10:02:42.8233023Z       ],
2026-06-15T10:02:42.8233094Z       "stages": {
2026-06-15T10:02:42.8233267Z         "doc": {
2026-06-15T10:02:42.8233347Z           "complete": false,
2026-06-15T10:02:42.8233441Z           "evidence": []
2026-06-15T10:02:42.8233532Z         },
2026-06-15T10:02:42.8233608Z         "impl": {
2026-06-15T10:02:42.8233706Z           "complete": true,
2026-06-15T10:02:42.8233792Z           "evidence": [
2026-06-15T10:02:42.8233878Z             {
2026-06-15T10:02:42.8233979Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.8234073Z               "line": 114
2026-06-15T10:02:42.8234155Z             },
2026-06-15T10:02:42.8234236Z             {
2026-06-15T10:02:42.8234359Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.8234450Z               "line": 481
2026-06-15T10:02:42.8234536Z             }
2026-06-15T10:02:42.8234613Z           ]
2026-06-15T10:02:42.8237153Z         },
2026-06-15T10:02:42.8237276Z         "int": {
2026-06-15T10:02:42.8237373Z           "complete": false,
2026-06-15T10:02:42.8237467Z           "evidence": []
2026-06-15T10:02:42.8237552Z         },
2026-06-15T10:02:42.8237639Z         "unit": {
2026-06-15T10:02:42.8237731Z           "complete": true,
2026-06-15T10:02:42.8237825Z           "evidence": [
2026-06-15T10:02:42.8237911Z             {
2026-06-15T10:02:42.8238050Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.8238144Z               "line": 515
2026-06-15T10:02:42.8238225Z             }
2026-06-15T10:02:42.8238307Z           ]
2026-06-15T10:02:42.8238388Z         }
2026-06-15T10:02:42.8238468Z       }
2026-06-15T10:02:42.8238548Z     },
2026-06-15T10:02:42.8238625Z     {
2026-06-15T10:02:42.8238747Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-15T10:02:42.8238913Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-15T10:02:42.8239081Z       "requiredStages": [
2026-06-15T10:02:42.8239171Z         "impl",
2026-06-15T10:02:42.8239252Z         "unit"
2026-06-15T10:02:42.8239329Z       ],
2026-06-15T10:02:42.8239410Z       "stages": {
2026-06-15T10:02:42.8239505Z         "doc": {
2026-06-15T10:02:42.8239596Z           "complete": false,
2026-06-15T10:02:42.8239686Z           "evidence": []
2026-06-15T10:02:42.8239766Z         },
2026-06-15T10:02:42.8239857Z         "impl": {
2026-06-15T10:02:42.8239949Z           "complete": true,
2026-06-15T10:02:42.8240039Z           "evidence": [
2026-06-15T10:02:42.8240124Z             {
2026-06-15T10:02:42.8240240Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.8240334Z               "line": 502
2026-06-15T10:02:42.8240415Z             },
2026-06-15T10:02:42.8240491Z             {
2026-06-15T10:02:42.8240607Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T10:02:42.8240696Z               "line": 28
2026-06-15T10:02:42.8240778Z             }
2026-06-15T10:02:42.8240850Z           ]
2026-06-15T10:02:42.8240941Z         },
2026-06-15T10:02:42.8241021Z         "int": {
2026-06-15T10:02:42.8241116Z           "complete": false,
2026-06-15T10:02:42.8241218Z           "evidence": []
2026-06-15T10:02:42.8241302Z         },
2026-06-15T10:02:42.8241387Z         "unit": {
2026-06-15T10:02:42.8241478Z           "complete": true,
2026-06-15T10:02:42.8241559Z           "evidence": [
2026-06-15T10:02:42.8241643Z             {
2026-06-15T10:02:42.8241761Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T10:02:42.8241853Z               "line": 229
2026-06-15T10:02:42.8241934Z             }
2026-06-15T10:02:42.8242019Z           ]
2026-06-15T10:02:42.8242095Z         }
2026-06-15T10:02:42.8242172Z       }
2026-06-15T10:02:42.8242253Z     },
2026-06-15T10:02:42.8242329Z     {
2026-06-15T10:02:42.8242448Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-15T10:02:42.8242582Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-15T10:02:42.8242677Z       "requiredStages": [],
2026-06-15T10:02:42.8242896Z       "stages": {
2026-06-15T10:02:42.8242987Z         "doc": {
2026-06-15T10:02:42.8243078Z           "complete": false,
2026-06-15T10:02:42.8243259Z           "evidence": []
2026-06-15T10:02:42.8243335Z         },
2026-06-15T10:02:42.8243417Z         "impl": {
2026-06-15T10:02:42.8243512Z           "complete": false,
2026-06-15T10:02:42.8243592Z           "evidence": []
2026-06-15T10:02:42.8243669Z         },
2026-06-15T10:02:42.8243756Z         "int": {
2026-06-15T10:02:42.8243846Z           "complete": false,
2026-06-15T10:02:42.8243930Z           "evidence": []
2026-06-15T10:02:42.8244016Z         },
2026-06-15T10:02:42.8244106Z         "unit": {
2026-06-15T10:02:42.8244191Z           "complete": false,
2026-06-15T10:02:42.8244280Z           "evidence": []
2026-06-15T10:02:42.8244361Z         }
2026-06-15T10:02:42.8244448Z       }
2026-06-15T10:02:42.8244525Z     },
2026-06-15T10:02:42.8244599Z     {
2026-06-15T10:02:42.8244720Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-15T10:02:42.8244863Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-15T10:02:42.8244957Z       "requiredStages": [
2026-06-15T10:02:42.8245049Z         "impl",
2026-06-15T10:02:42.8245139Z         "unit"
2026-06-15T10:02:42.8245225Z       ],
2026-06-15T10:02:42.8245310Z       "stages": {
2026-06-15T10:02:42.8245397Z         "doc": {
2026-06-15T10:02:42.8245491Z           "complete": false,
2026-06-15T10:02:42.8245587Z           "evidence": []
2026-06-15T10:02:42.8245674Z         },
2026-06-15T10:02:42.8245769Z         "impl": {
2026-06-15T10:02:42.8245869Z           "complete": true,
2026-06-15T10:02:42.8245945Z           "evidence": [
2026-06-15T10:02:42.8246027Z             {
2026-06-15T10:02:42.8246140Z               "path": "crates/spt-live/src/turn.rs",
2026-06-15T10:02:42.8246235Z               "line": 19
2026-06-15T10:02:42.8246318Z             },
2026-06-15T10:02:42.8246403Z             {
2026-06-15T10:02:42.8246531Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T10:02:42.8246623Z               "line": 347
2026-06-15T10:02:42.8246709Z             },
2026-06-15T10:02:42.8246783Z             {
2026-06-15T10:02:42.8246897Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T10:02:42.8246988Z               "line": 383
2026-06-15T10:02:42.8247075Z             },
2026-06-15T10:02:42.8247169Z             {
2026-06-15T10:02:42.8247279Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T10:02:42.8247369Z               "line": 15
2026-06-15T10:02:42.8247446Z             },
2026-06-15T10:02:42.8247526Z             {
2026-06-15T10:02:42.8247642Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T10:02:42.8247733Z               "line": 48
2026-06-15T10:02:42.8247812Z             },
2026-06-15T10:02:42.8247894Z             {
2026-06-15T10:02:42.8248013Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T10:02:42.8248099Z               "line": 119
2026-06-15T10:02:42.8248194Z             },
2026-06-15T10:02:42.8248281Z             {
2026-06-15T10:02:42.8248395Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8248490Z               "line": 3508
2026-06-15T10:02:42.8248572Z             }
2026-06-15T10:02:42.8248661Z           ]
2026-06-15T10:02:42.8248738Z         },
2026-06-15T10:02:42.8248819Z         "int": {
2026-06-15T10:02:42.8248921Z           "complete": false,
2026-06-15T10:02:42.8249090Z           "evidence": []
2026-06-15T10:02:42.8249176Z         },
2026-06-15T10:02:42.8249252Z         "unit": {
2026-06-15T10:02:42.8249364Z           "complete": true,
2026-06-15T10:02:42.8249454Z           "evidence": [
2026-06-15T10:02:42.8249545Z             {
2026-06-15T10:02:42.8249664Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T10:02:42.8249764Z               "line": 496
2026-06-15T10:02:42.8249850Z             },
2026-06-15T10:02:42.8249922Z             {
2026-06-15T10:02:42.8250041Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T10:02:42.8250237Z               "line": 165
2026-06-15T10:02:42.8250322Z             },
2026-06-15T10:02:42.8250398Z             {
2026-06-15T10:02:42.8250514Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-15T10:02:42.8250689Z               "line": 175
2026-06-15T10:02:42.8250766Z             }
2026-06-15T10:02:42.8250852Z           ]
2026-06-15T10:02:42.8250928Z         }
2026-06-15T10:02:42.8251014Z       }
2026-06-15T10:02:42.8251100Z     },
2026-06-15T10:02:42.8251186Z     {
2026-06-15T10:02:42.8251295Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-15T10:02:42.8252193Z       "title": "Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)",
2026-06-15T10:02:42.8252293Z       "requiredStages": [
2026-06-15T10:02:42.8252369Z         "impl",
2026-06-15T10:02:42.8252470Z         "unit"
2026-06-15T10:02:42.8252560Z       ],
2026-06-15T10:02:42.8252635Z       "stages": {
2026-06-15T10:02:42.8252728Z         "doc": {
2026-06-15T10:02:42.8252828Z           "complete": false,
2026-06-15T10:02:42.8252922Z           "evidence": []
2026-06-15T10:02:42.8253008Z         },
2026-06-15T10:02:42.8253085Z         "impl": {
2026-06-15T10:02:42.8253185Z           "complete": true,
2026-06-15T10:02:42.8253279Z           "evidence": [
2026-06-15T10:02:42.8253357Z             {
2026-06-15T10:02:42.8253476Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8253571Z               "line": 192
2026-06-15T10:02:42.8253647Z             },
2026-06-15T10:02:42.8253729Z             {
2026-06-15T10:02:42.8253842Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8253938Z               "line": 279
2026-06-15T10:02:42.8254020Z             }
2026-06-15T10:02:42.8254096Z           ]
2026-06-15T10:02:42.8254171Z         },
2026-06-15T10:02:42.8254253Z         "int": {
2026-06-15T10:02:42.8254344Z           "complete": false,
2026-06-15T10:02:42.8254439Z           "evidence": []
2026-06-15T10:02:42.8254514Z         },
2026-06-15T10:02:42.8254595Z         "unit": {
2026-06-15T10:02:42.8254690Z           "complete": true,
2026-06-15T10:02:42.8254774Z           "evidence": [
2026-06-15T10:02:42.8254849Z             {
2026-06-15T10:02:42.8254965Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8255051Z               "line": 470
2026-06-15T10:02:42.8255127Z             },
2026-06-15T10:02:42.8255207Z             {
2026-06-15T10:02:42.8255304Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8255399Z               "line": 526
2026-06-15T10:02:42.8255479Z             }
2026-06-15T10:02:42.8255560Z           ]
2026-06-15T10:02:42.8255638Z         }
2026-06-15T10:02:42.8255708Z       }
2026-06-15T10:02:42.8255803Z     },
2026-06-15T10:02:42.8255875Z     {
2026-06-15T10:02:42.8255990Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-15T10:02:42.8256151Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-15T10:02:42.8256248Z       "requiredStages": [
2026-06-15T10:02:42.8256352Z         "impl",
2026-06-15T10:02:42.8256433Z         "unit"
2026-06-15T10:02:42.8256510Z       ],
2026-06-15T10:02:42.8256591Z       "stages": {
2026-06-15T10:02:42.8256676Z         "doc": {
2026-06-15T10:02:42.8256767Z           "complete": false,
2026-06-15T10:02:42.8256859Z           "evidence": []
2026-06-15T10:02:42.8256949Z         },
2026-06-15T10:02:42.8257033Z         "impl": {
2026-06-15T10:02:42.8257120Z           "complete": true,
2026-06-15T10:02:42.8257207Z           "evidence": [
2026-06-15T10:02:42.8257292Z             {
2026-06-15T10:02:42.8257400Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T10:02:42.8257491Z               "line": 35
2026-06-15T10:02:42.8257568Z             }
2026-06-15T10:02:42.8257644Z           ]
2026-06-15T10:02:42.8257729Z         },
2026-06-15T10:02:42.8257805Z         "int": {
2026-06-15T10:02:42.8257983Z           "complete": false,
2026-06-15T10:02:42.8258072Z           "evidence": []
2026-06-15T10:02:42.8258149Z         },
2026-06-15T10:02:42.8258321Z         "unit": {
2026-06-15T10:02:42.8258416Z           "complete": true,
2026-06-15T10:02:42.8258502Z           "evidence": [
2026-06-15T10:02:42.8258583Z             {
2026-06-15T10:02:42.8258701Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-15T10:02:42.8258784Z               "line": 220
2026-06-15T10:02:42.8258870Z             }
2026-06-15T10:02:42.8259040Z           ]
2026-06-15T10:02:42.8259113Z         }
2026-06-15T10:02:42.8259203Z       }
2026-06-15T10:02:42.8259278Z     },
2026-06-15T10:02:42.8259370Z     {
2026-06-15T10:02:42.8259466Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-15T10:02:42.8259721Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-15T10:02:42.8259821Z       "requiredStages": [
2026-06-15T10:02:42.8259914Z         "impl",
2026-06-15T10:02:42.8260000Z         "unit"
2026-06-15T10:02:42.8260081Z       ],
2026-06-15T10:02:42.8260168Z       "stages": {
2026-06-15T10:02:42.8260253Z         "doc": {
2026-06-15T10:02:42.8260353Z           "complete": false,
2026-06-15T10:02:42.8260440Z           "evidence": []
2026-06-15T10:02:42.8260516Z         },
2026-06-15T10:02:42.8260605Z         "impl": {
2026-06-15T10:02:42.8260697Z           "complete": true,
2026-06-15T10:02:42.8260787Z           "evidence": [
2026-06-15T10:02:42.8260868Z             {
2026-06-15T10:02:42.8260997Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T10:02:42.8261088Z               "line": 405
2026-06-15T10:02:42.8261164Z             },
2026-06-15T10:02:42.8261249Z             {
2026-06-15T10:02:42.8261370Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.8261459Z               "line": 409
2026-06-15T10:02:42.8261535Z             },
2026-06-15T10:02:42.8261612Z             {
2026-06-15T10:02:42.8261746Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T10:02:42.8261831Z               "line": 156
2026-06-15T10:02:42.8261907Z             }
2026-06-15T10:02:42.8261990Z           ]
2026-06-15T10:02:42.8262079Z         },
2026-06-15T10:02:42.8262150Z         "int": {
2026-06-15T10:02:42.8262241Z           "complete": false,
2026-06-15T10:02:42.8262324Z           "evidence": []
2026-06-15T10:02:42.8262404Z         },
2026-06-15T10:02:42.8262498Z         "unit": {
2026-06-15T10:02:42.8262583Z           "complete": true,
2026-06-15T10:02:42.8262679Z           "evidence": [
2026-06-15T10:02:42.8262758Z             {
2026-06-15T10:02:42.8262876Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.8262968Z               "line": 812
2026-06-15T10:02:42.8263045Z             },
2026-06-15T10:02:42.8263130Z             {
2026-06-15T10:02:42.8263244Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.8263335Z               "line": 826
2026-06-15T10:02:42.8263421Z             },
2026-06-15T10:02:42.8263501Z             {
2026-06-15T10:02:42.8263617Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.8263707Z               "line": 845
2026-06-15T10:02:42.8263797Z             },
2026-06-15T10:02:42.8263874Z             {
2026-06-15T10:02:42.8263993Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.8264083Z               "line": 862
2026-06-15T10:02:42.8264164Z             },
2026-06-15T10:02:42.8264237Z             {
2026-06-15T10:02:42.8264369Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T10:02:42.8264460Z               "line": 441
2026-06-15T10:02:42.8264537Z             }
2026-06-15T10:02:42.8264628Z           ]
2026-06-15T10:02:42.8264708Z         }
2026-06-15T10:02:42.8264789Z       }
2026-06-15T10:02:42.8264871Z     },
2026-06-15T10:02:42.8264947Z     {
2026-06-15T10:02:42.8265064Z       "id": "REQ-HAZARD-VIEWER-ISOLATION",
2026-06-15T10:02:42.8267180Z       "title": "A slow / dead / hostile VIEWER must NEVER stall the controller, the PTY child, or the session drain thread. The broker drain fans output to the controller on the authoritative blocking bounded path (advances delivered_through) but to each viewer via a bounded per-viewer channel with a dedicated writer thread; the drain `try_send`s under the log lock and a viewer whose bounded queue OVERFLOWS (can't keep up) is EVICTED (queue dropped, writer thread ends, removed from the viewers map) — the drain thread NEVER touches a viewer socket, so no viewer write can backpressure or block it. A soft viewer cap bounds the thread count. Viewer eviction never perturbs the controller stream, the delivered_through cursor, or the child.",
2026-06-15T10:02:42.8267466Z       "requiredStages": [
2026-06-15T10:02:42.8267551Z         "unit",
2026-06-15T10:02:42.8267633Z         "int"
2026-06-15T10:02:42.8267714Z       ],
2026-06-15T10:02:42.8267810Z       "stages": {
2026-06-15T10:02:42.8267889Z         "doc": {
2026-06-15T10:02:42.8267984Z           "complete": true,
2026-06-15T10:02:42.8268075Z           "evidence": [
2026-06-15T10:02:42.8268151Z             {
2026-06-15T10:02:42.8268256Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T10:02:42.8268346Z               "line": 374
2026-06-15T10:02:42.8268433Z             }
2026-06-15T10:02:42.8268514Z           ]
2026-06-15T10:02:42.8268589Z         },
2026-06-15T10:02:42.8268670Z         "impl": {
2026-06-15T10:02:42.8268767Z           "complete": true,
2026-06-15T10:02:42.8268843Z           "evidence": [
2026-06-15T10:02:42.8268918Z             {
2026-06-15T10:02:42.8269119Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.8269210Z               "line": 97
2026-06-15T10:02:42.8269286Z             }
2026-06-15T10:02:42.8269367Z           ]
2026-06-15T10:02:42.8269458Z         },
2026-06-15T10:02:42.8269534Z         "int": {
2026-06-15T10:02:42.8269629Z           "complete": true,
2026-06-15T10:02:42.8269726Z           "evidence": [
2026-06-15T10:02:42.8269810Z             {
2026-06-15T10:02:42.8269925Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T10:02:42.8270017Z               "line": 918
2026-06-15T10:02:42.8270106Z             }
2026-06-15T10:02:42.8270186Z           ]
2026-06-15T10:02:42.8270271Z         },
2026-06-15T10:02:42.8270362Z         "unit": {
2026-06-15T10:02:42.8270451Z           "complete": true,
2026-06-15T10:02:42.8270546Z           "evidence": [
2026-06-15T10:02:42.8270622Z             {
2026-06-15T10:02:42.8270738Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.8270832Z               "line": 1459
2026-06-15T10:02:42.8270918Z             }
2026-06-15T10:02:42.8271004Z           ]
2026-06-15T10:02:42.8271081Z         }
2026-06-15T10:02:42.8271161Z       }
2026-06-15T10:02:42.8271237Z     },
2026-06-15T10:02:42.8271319Z     {
2026-06-15T10:02:42.8271424Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-15T10:02:42.8272206Z       "title": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)",
2026-06-15T10:02:42.8272315Z       "requiredStages": [
2026-06-15T10:02:42.8272391Z         "doc",
2026-06-15T10:02:42.8272472Z         "impl",
2026-06-15T10:02:42.8272545Z         "unit"
2026-06-15T10:02:42.8272630Z       ],
2026-06-15T10:02:42.8272720Z       "stages": {
2026-06-15T10:02:42.8272797Z         "doc": {
2026-06-15T10:02:42.8272893Z           "complete": true,
2026-06-15T10:02:42.8272982Z           "evidence": [
2026-06-15T10:02:42.8273068Z             {
2026-06-15T10:02:42.8273167Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-15T10:02:42.8273258Z               "line": 359
2026-06-15T10:02:42.8273337Z             }
2026-06-15T10:02:42.8273413Z           ]
2026-06-15T10:02:42.8273489Z         },
2026-06-15T10:02:42.8273566Z         "impl": {
2026-06-15T10:02:42.8273770Z           "complete": true,
2026-06-15T10:02:42.8273848Z           "evidence": [
2026-06-15T10:02:42.8273928Z             {
2026-06-15T10:02:42.8274047Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T10:02:42.8274229Z               "line": 87
2026-06-15T10:02:42.8274319Z             },
2026-06-15T10:02:42.8274395Z             {
2026-06-15T10:02:42.8274511Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T10:02:42.8274600Z               "line": 105
2026-06-15T10:02:42.8274691Z             },
2026-06-15T10:02:42.8274782Z             {
2026-06-15T10:02:42.8274896Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T10:02:42.8274991Z               "line": 55
2026-06-15T10:02:42.8275073Z             },
2026-06-15T10:02:42.8275150Z             {
2026-06-15T10:02:42.8275268Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T10:02:42.8275358Z               "line": 31
2026-06-15T10:02:42.8275446Z             },
2026-06-15T10:02:42.8275521Z             {
2026-06-15T10:02:42.8275638Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T10:02:42.8275720Z               "line": 189
2026-06-15T10:02:42.8275810Z             },
2026-06-15T10:02:42.8275885Z             {
2026-06-15T10:02:42.8276008Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T10:02:42.8276099Z               "line": 95
2026-06-15T10:02:42.8276176Z             },
2026-06-15T10:02:42.8276257Z             {
2026-06-15T10:02:42.8276375Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T10:02:42.8276472Z               "line": 29
2026-06-15T10:02:42.8276548Z             },
2026-06-15T10:02:42.8276637Z             {
2026-06-15T10:02:42.8276758Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T10:02:42.8276843Z               "line": 104
2026-06-15T10:02:42.8276933Z             },
2026-06-15T10:02:42.8277005Z             {
2026-06-15T10:02:42.8277143Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8277234Z               "line": 208
2026-06-15T10:02:42.8277324Z             },
2026-06-15T10:02:42.8277411Z             {
2026-06-15T10:02:42.8277530Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T10:02:42.8277610Z               "line": 28
2026-06-15T10:02:42.8277688Z             },
2026-06-15T10:02:42.8277768Z             {
2026-06-15T10:02:42.8277882Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T10:02:42.8277974Z               "line": 74
2026-06-15T10:02:42.8278055Z             },
2026-06-15T10:02:42.8278135Z             {
2026-06-15T10:02:42.8278250Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T10:02:42.8278336Z               "line": 32
2026-06-15T10:02:42.8278426Z             },
2026-06-15T10:02:42.8278501Z             {
2026-06-15T10:02:42.8278615Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T10:02:42.8278707Z               "line": 40
2026-06-15T10:02:42.8278783Z             },
2026-06-15T10:02:42.8278877Z             {
2026-06-15T10:02:42.8279084Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T10:02:42.8279173Z               "line": 184
2026-06-15T10:02:42.8279255Z             },
2026-06-15T10:02:42.8279337Z             {
2026-06-15T10:02:42.8279455Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T10:02:42.8279545Z               "line": 61
2026-06-15T10:02:42.8279637Z             },
2026-06-15T10:02:42.8279717Z             {
2026-06-15T10:02:42.8279841Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T10:02:42.8279937Z               "line": 131
2026-06-15T10:02:42.8280018Z             },
2026-06-15T10:02:42.8280103Z             {
2026-06-15T10:02:42.8280214Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T10:02:42.8280304Z               "line": 223
2026-06-15T10:02:42.8280379Z             },
2026-06-15T10:02:42.8280460Z             {
2026-06-15T10:02:42.8280577Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T10:02:42.8280765Z               "line": 37
2026-06-15T10:02:42.8280856Z             },
2026-06-15T10:02:42.8280932Z             {
2026-06-15T10:02:42.8281129Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T10:02:42.8281221Z               "line": 38
2026-06-15T10:02:42.8281298Z             },
2026-06-15T10:02:42.8281378Z             {
2026-06-15T10:02:42.8281492Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T10:02:42.8281583Z               "line": 36
2026-06-15T10:02:42.8281664Z             },
2026-06-15T10:02:42.8281749Z             {
2026-06-15T10:02:42.8281865Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T10:02:42.8281955Z               "line": 40
2026-06-15T10:02:42.8282040Z             }
2026-06-15T10:02:42.8282112Z           ]
2026-06-15T10:02:42.8282199Z         },
2026-06-15T10:02:42.8282274Z         "int": {
2026-06-15T10:02:42.8282369Z           "complete": false,
2026-06-15T10:02:42.8282461Z           "evidence": []
2026-06-15T10:02:42.8282556Z         },
2026-06-15T10:02:42.8282632Z         "unit": {
2026-06-15T10:02:42.8282722Z           "complete": true,
2026-06-15T10:02:42.8282800Z           "evidence": [
2026-06-15T10:02:42.8282880Z             {
2026-06-15T10:02:42.8283008Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T10:02:42.8283100Z               "line": 212
2026-06-15T10:02:42.8283176Z             },
2026-06-15T10:02:42.8283265Z             {
2026-06-15T10:02:42.8283386Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-15T10:02:42.8283477Z               "line": 136
2026-06-15T10:02:42.8283552Z             },
2026-06-15T10:02:42.8283632Z             {
2026-06-15T10:02:42.8283746Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T10:02:42.8283846Z               "line": 685
2026-06-15T10:02:42.8283930Z             },
2026-06-15T10:02:42.8284010Z             {
2026-06-15T10:02:42.8284131Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T10:02:42.8284226Z               "line": 224
2026-06-15T10:02:42.8284311Z             },
2026-06-15T10:02:42.8284398Z             {
2026-06-15T10:02:42.8284517Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T10:02:42.8284617Z               "line": 206
2026-06-15T10:02:42.8284689Z             },
2026-06-15T10:02:42.8284779Z             {
2026-06-15T10:02:42.8284893Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T10:02:42.8284984Z               "line": 112
2026-06-15T10:02:42.8285057Z             },
2026-06-15T10:02:42.8285132Z             {
2026-06-15T10:02:42.8285246Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T10:02:42.8285332Z               "line": 157
2026-06-15T10:02:42.8285409Z             },
2026-06-15T10:02:42.8285485Z             {
2026-06-15T10:02:42.8285603Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T10:02:42.8285696Z               "line": 215
2026-06-15T10:02:42.8285780Z             },
2026-06-15T10:02:42.8285861Z             {
2026-06-15T10:02:42.8285972Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T10:02:42.8286057Z               "line": 141
2026-06-15T10:02:42.8286137Z             },
2026-06-15T10:02:42.8286227Z             {
2026-06-15T10:02:42.8286342Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T10:02:42.8286426Z               "line": 162
2026-06-15T10:02:42.8286516Z             }
2026-06-15T10:02:42.8286597Z           ]
2026-06-15T10:02:42.8286688Z         }
2026-06-15T10:02:42.8286769Z       }
2026-06-15T10:02:42.8286854Z     },
2026-06-15T10:02:42.8286945Z     {
2026-06-15T10:02:42.8287055Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-15T10:02:42.8287212Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-15T10:02:42.8287303Z       "requiredStages": [
2026-06-15T10:02:42.8287394Z         "impl",
2026-06-15T10:02:42.8287469Z         "unit"
2026-06-15T10:02:42.8287546Z       ],
2026-06-15T10:02:42.8287627Z       "stages": {
2026-06-15T10:02:42.8287803Z         "doc": {
2026-06-15T10:02:42.8287899Z           "complete": false,
2026-06-15T10:02:42.8287990Z           "evidence": []
2026-06-15T10:02:42.8288132Z         },
2026-06-15T10:02:42.8288214Z         "impl": {
2026-06-15T10:02:42.8288309Z           "complete": true,
2026-06-15T10:02:42.8288404Z           "evidence": [
2026-06-15T10:02:42.8288480Z             {
2026-06-15T10:02:42.8288591Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T10:02:42.8288680Z               "line": 95
2026-06-15T10:02:42.8288767Z             },
2026-06-15T10:02:42.8288844Z             {
2026-06-15T10:02:42.8289019Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.8289099Z               "line": 102
2026-06-15T10:02:42.8289180Z             }
2026-06-15T10:02:42.8289258Z           ]
2026-06-15T10:02:42.8289338Z         },
2026-06-15T10:02:42.8289423Z         "int": {
2026-06-15T10:02:42.8289510Z           "complete": false,
2026-06-15T10:02:42.8289610Z           "evidence": []
2026-06-15T10:02:42.8289691Z         },
2026-06-15T10:02:42.8289766Z         "unit": {
2026-06-15T10:02:42.8289858Z           "complete": true,
2026-06-15T10:02:42.8289953Z           "evidence": [
2026-06-15T10:02:42.8290043Z             {
2026-06-15T10:02:42.8290139Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T10:02:42.8290240Z               "line": 250
2026-06-15T10:02:42.8290330Z             },
2026-06-15T10:02:42.8290410Z             {
2026-06-15T10:02:42.8290526Z               "path": "crates/spt-store/src/proc.rs",
2026-06-15T10:02:42.8290615Z               "line": 198
2026-06-15T10:02:42.8290696Z             },
2026-06-15T10:02:42.8290779Z             {
2026-06-15T10:02:42.8290897Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.8290988Z               "line": 489
2026-06-15T10:02:42.8291069Z             },
2026-06-15T10:02:42.8291151Z             {
2026-06-15T10:02:42.8291259Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.8291358Z               "line": 522
2026-06-15T10:02:42.8291439Z             }
2026-06-15T10:02:42.8291525Z           ]
2026-06-15T10:02:42.8291618Z         }
2026-06-15T10:02:42.8291689Z       }
2026-06-15T10:02:42.8291781Z     },
2026-06-15T10:02:42.8291863Z     {
2026-06-15T10:02:42.8291971Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-15T10:02:42.8292148Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-15T10:02:42.8292248Z       "requiredStages": [
2026-06-15T10:02:42.8292338Z         "impl",
2026-06-15T10:02:42.8292420Z         "unit"
2026-06-15T10:02:42.8292505Z       ],
2026-06-15T10:02:42.8292576Z       "stages": {
2026-06-15T10:02:42.8292667Z         "doc": {
2026-06-15T10:02:42.8292764Z           "complete": false,
2026-06-15T10:02:42.8292859Z           "evidence": []
2026-06-15T10:02:42.8292934Z         },
2026-06-15T10:02:42.8293011Z         "impl": {
2026-06-15T10:02:42.8293107Z           "complete": true,
2026-06-15T10:02:42.8293192Z           "evidence": [
2026-06-15T10:02:42.8293278Z             {
2026-06-15T10:02:42.8293389Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8293487Z               "line": 262
2026-06-15T10:02:42.8293578Z             },
2026-06-15T10:02:42.8293656Z             {
2026-06-15T10:02:42.8293769Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8293859Z               "line": 307
2026-06-15T10:02:42.8293951Z             },
2026-06-15T10:02:42.8294023Z             {
2026-06-15T10:02:42.8294140Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8294221Z               "line": 319
2026-06-15T10:02:42.8294302Z             }
2026-06-15T10:02:42.8294383Z           ]
2026-06-15T10:02:42.8294452Z         },
2026-06-15T10:02:42.8294547Z         "int": {
2026-06-15T10:02:42.8294638Z           "complete": false,
2026-06-15T10:02:42.8294734Z           "evidence": []
2026-06-15T10:02:42.8294814Z         },
2026-06-15T10:02:42.8294900Z         "unit": {
2026-06-15T10:02:42.8295096Z           "complete": true,
2026-06-15T10:02:42.8295186Z           "evidence": [
2026-06-15T10:02:42.8295268Z             {
2026-06-15T10:02:42.8295472Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8295563Z               "line": 455
2026-06-15T10:02:42.8295640Z             },
2026-06-15T10:02:42.8295720Z             {
2026-06-15T10:02:42.8295830Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8295917Z               "line": 499
2026-06-15T10:02:42.8296002Z             }
2026-06-15T10:02:42.8296078Z           ]
2026-06-15T10:02:42.8296154Z         }
2026-06-15T10:02:42.8296227Z       }
2026-06-15T10:02:42.8296312Z     },
2026-06-15T10:02:42.8296388Z     {
2026-06-15T10:02:42.8296488Z       "id": "REQ-HOST-RUN-1",
2026-06-15T10:02:42.8298931Z       "title": "spt-hosted harness bringup: `spt endpoint run` spawns an adapter's `[session.self]` command template into a broker-held PTY (the spawn-session seam, brain.rs spawn_session_pid — same broker path shellhost.rs launch_shell_brokered_in uses for shells, now for kind=\"harness\" self-role), registers the perch under the given endpoint id, returns the id. Reverses today's harness-hosted-only launch (external launcher → `api bind`). Non-interactive flag set (--adapter <a[:profile]> --id <id> --create --resume <session> --attach|--start|--view) covers every terminal action of the W2 interactive picker so shortcuts (cc-<id>) bake fully non-interactive launches; composite adapter:profile resolves via registry::resolve_option leaf-replace overlay.",
2026-06-15T10:02:42.8299104Z       "requiredStages": [
2026-06-15T10:02:42.8299198Z         "impl",
2026-06-15T10:02:42.8299269Z         "unit",
2026-06-15T10:02:42.8299360Z         "int"
2026-06-15T10:02:42.8299433Z       ],
2026-06-15T10:02:42.8299513Z       "stages": {
2026-06-15T10:02:42.8299593Z         "doc": {
2026-06-15T10:02:42.8299697Z           "complete": false,
2026-06-15T10:02:42.8299783Z           "evidence": []
2026-06-15T10:02:42.8299866Z         },
2026-06-15T10:02:42.8299955Z         "impl": {
2026-06-15T10:02:42.8300045Z           "complete": true,
2026-06-15T10:02:42.8300137Z           "evidence": [
2026-06-15T10:02:42.8300223Z             {
2026-06-15T10:02:42.8300355Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T10:02:42.8300442Z               "line": 24
2026-06-15T10:02:42.8300523Z             },
2026-06-15T10:02:42.8300598Z             {
2026-06-15T10:02:42.8300723Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T10:02:42.8300814Z               "line": 63
2026-06-15T10:02:42.8300890Z             },
2026-06-15T10:02:42.8300975Z             {
2026-06-15T10:02:42.8301105Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T10:02:42.8301180Z               "line": 109
2026-06-15T10:02:42.8301271Z             },
2026-06-15T10:02:42.8301353Z             {
2026-06-15T10:02:42.8301462Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8301553Z               "line": 1159
2026-06-15T10:02:42.8301638Z             }
2026-06-15T10:02:42.8301716Z           ]
2026-06-15T10:02:42.8301795Z         },
2026-06-15T10:02:42.8301876Z         "int": {
2026-06-15T10:02:42.8301971Z           "complete": true,
2026-06-15T10:02:42.8302047Z           "evidence": [
2026-06-15T10:02:42.8302122Z             {
2026-06-15T10:02:42.8302245Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T10:02:42.8302326Z               "line": 279
2026-06-15T10:02:42.8302403Z             }
2026-06-15T10:02:42.8302488Z           ]
2026-06-15T10:02:42.8302569Z         },
2026-06-15T10:02:42.8302655Z         "unit": {
2026-06-15T10:02:42.8302746Z           "complete": true,
2026-06-15T10:02:42.8302841Z           "evidence": [
2026-06-15T10:02:42.8302927Z             {
2026-06-15T10:02:42.8303042Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T10:02:42.8303137Z               "line": 149
2026-06-15T10:02:42.8303222Z             },
2026-06-15T10:02:42.8303414Z             {
2026-06-15T10:02:42.8303533Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T10:02:42.8303624Z               "line": 169
2026-06-15T10:02:42.8303794Z             },
2026-06-15T10:02:42.8303871Z             {
2026-06-15T10:02:42.8303986Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T10:02:42.8304076Z               "line": 202
2026-06-15T10:02:42.8306576Z             }
2026-06-15T10:02:42.8306686Z           ]
2026-06-15T10:02:42.8306768Z         }
2026-06-15T10:02:42.8306858Z       }
2026-06-15T10:02:42.8306933Z     },
2026-06-15T10:02:42.8307010Z     {
2026-06-15T10:02:42.8307106Z       "id": "REQ-HOST-RUN-2",
2026-06-15T10:02:42.8308814Z       "title": "Project-scoped working directory for spt-hosted bringup: `spt endpoint run` lands the broker-spawned harness PTY in the user's PROJECT cwd, not the daemon's, via an additive `SpawnReq.cwd` field carried through the broker PTY spawn (portable-pty CommandBuilder cwd). N-1-safe wire change (additive, defaulted). Required because the consumer (Claude Code) is project-scoped: broker-inherited cwd = the daemon's cwd = the wrong `.claude`, wrong session history, wrong digest source; `cc <id>` at a project root MUST land the harness in that project. W1 ships broker-inherited cwd as a bringup-proof shortcut only; this REQ must land before the M12 gate (doyle, 2026-06-14).",
2026-06-15T10:02:42.8308918Z       "requiredStages": [
2026-06-15T10:02:42.8309100Z         "impl",
2026-06-15T10:02:42.8309181Z         "unit",
2026-06-15T10:02:42.8309262Z         "int"
2026-06-15T10:02:42.8309344Z       ],
2026-06-15T10:02:42.8309439Z       "stages": {
2026-06-15T10:02:42.8309514Z         "doc": {
2026-06-15T10:02:42.8309610Z           "complete": false,
2026-06-15T10:02:42.8309702Z           "evidence": []
2026-06-15T10:02:42.8309786Z         },
2026-06-15T10:02:42.8309863Z         "impl": {
2026-06-15T10:02:42.8309959Z           "complete": true,
2026-06-15T10:02:42.8310050Z           "evidence": [
2026-06-15T10:02:42.8310125Z             {
2026-06-15T10:02:42.8310267Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-15T10:02:42.8310343Z               "line": 110
2026-06-15T10:02:42.8310426Z             },
2026-06-15T10:02:42.8310510Z             {
2026-06-15T10:02:42.8310625Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T10:02:42.8310716Z               "line": 113
2026-06-15T10:02:42.8310792Z             }
2026-06-15T10:02:42.8310872Z           ]
2026-06-15T10:02:42.8310950Z         },
2026-06-15T10:02:42.8311026Z         "int": {
2026-06-15T10:02:42.8311121Z           "complete": true,
2026-06-15T10:02:42.8311211Z           "evidence": [
2026-06-15T10:02:42.8311288Z             {
2026-06-15T10:02:42.8311406Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T10:02:42.8311497Z               "line": 454
2026-06-15T10:02:42.8311569Z             }
2026-06-15T10:02:42.8311655Z           ]
2026-06-15T10:02:42.8311735Z         },
2026-06-15T10:02:42.8311826Z         "unit": {
2026-06-15T10:02:42.8311923Z           "complete": true,
2026-06-15T10:02:42.8312013Z           "evidence": [
2026-06-15T10:02:42.8312083Z             {
2026-06-15T10:02:42.8312208Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T10:02:42.8312299Z               "line": 86
2026-06-15T10:02:42.8312379Z             }
2026-06-15T10:02:42.8312455Z           ]
2026-06-15T10:02:42.8312536Z         }
2026-06-15T10:02:42.8312612Z       }
2026-06-15T10:02:42.8312692Z     },
2026-06-15T10:02:42.8312772Z     {
2026-06-15T10:02:42.8312868Z       "id": "REQ-INFRA-1",
2026-06-15T10:02:42.8313044Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-15T10:02:42.8313139Z       "requiredStages": [],
2026-06-15T10:02:42.8313235Z       "stages": {
2026-06-15T10:02:42.8313316Z         "doc": {
2026-06-15T10:02:42.8313415Z           "complete": false,
2026-06-15T10:02:42.8313492Z           "evidence": []
2026-06-15T10:02:42.8313569Z         },
2026-06-15T10:02:42.8313782Z         "impl": {
2026-06-15T10:02:42.8313884Z           "complete": false,
2026-06-15T10:02:42.8313979Z           "evidence": []
2026-06-15T10:02:42.8314141Z         },
2026-06-15T10:02:42.8314227Z         "int": {
2026-06-15T10:02:42.8314317Z           "complete": false,
2026-06-15T10:02:42.8314407Z           "evidence": []
2026-06-15T10:02:42.8314485Z         },
2026-06-15T10:02:42.8314570Z         "unit": {
2026-06-15T10:02:42.8314665Z           "complete": false,
2026-06-15T10:02:42.8314741Z           "evidence": []
2026-06-15T10:02:42.8314819Z         }
2026-06-15T10:02:42.8314894Z       }
2026-06-15T10:02:42.8314975Z     },
2026-06-15T10:02:42.8315051Z     {
2026-06-15T10:02:42.8315143Z       "id": "REQ-INST-1",
2026-06-15T10:02:42.8315303Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-15T10:02:42.8315398Z       "requiredStages": [],
2026-06-15T10:02:42.8315479Z       "stages": {
2026-06-15T10:02:42.8315554Z         "doc": {
2026-06-15T10:02:42.8315653Z           "complete": false,
2026-06-15T10:02:42.8315735Z           "evidence": []
2026-06-15T10:02:42.8315816Z         },
2026-06-15T10:02:42.8315911Z         "impl": {
2026-06-15T10:02:42.8316006Z           "complete": false,
2026-06-15T10:02:42.8316093Z           "evidence": []
2026-06-15T10:02:42.8316168Z         },
2026-06-15T10:02:42.8316263Z         "int": {
2026-06-15T10:02:42.8316354Z           "complete": false,
2026-06-15T10:02:42.8316450Z           "evidence": []
2026-06-15T10:02:42.8316541Z         },
2026-06-15T10:02:42.8316626Z         "unit": {
2026-06-15T10:02:42.8316727Z           "complete": false,
2026-06-15T10:02:42.8316816Z           "evidence": []
2026-06-15T10:02:42.8316897Z         }
2026-06-15T10:02:42.8316978Z       }
2026-06-15T10:02:42.8317056Z     },
2026-06-15T10:02:42.8317145Z     {
2026-06-15T10:02:42.8317241Z       "id": "REQ-INST-10",
2026-06-15T10:02:42.8317442Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-15T10:02:42.8317541Z       "requiredStages": [
2026-06-15T10:02:42.8317628Z         "impl",
2026-06-15T10:02:42.8317705Z         "unit"
2026-06-15T10:02:42.8317794Z       ],
2026-06-15T10:02:42.8317888Z       "stages": {
2026-06-15T10:02:42.8317969Z         "doc": {
2026-06-15T10:02:42.8318060Z           "complete": false,
2026-06-15T10:02:42.8318148Z           "evidence": []
2026-06-15T10:02:42.8318229Z         },
2026-06-15T10:02:42.8318320Z         "impl": {
2026-06-15T10:02:42.8318412Z           "complete": true,
2026-06-15T10:02:42.8318506Z           "evidence": [
2026-06-15T10:02:42.8318582Z             {
2026-06-15T10:02:42.8318717Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8318806Z               "line": 616
2026-06-15T10:02:42.8318882Z             },
2026-06-15T10:02:42.8319031Z             {
2026-06-15T10:02:42.8319149Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8319241Z               "line": 693
2026-06-15T10:02:42.8319327Z             },
2026-06-15T10:02:42.8319417Z             {
2026-06-15T10:02:42.8319521Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T10:02:42.8319623Z               "line": 13
2026-06-15T10:02:42.8319717Z             },
2026-06-15T10:02:42.8319793Z             {
2026-06-15T10:02:42.8319909Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T10:02:42.8319999Z               "line": 67
2026-06-15T10:02:42.8320084Z             },
2026-06-15T10:02:42.8320160Z             {
2026-06-15T10:02:42.8320267Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T10:02:42.8320346Z               "line": 18
2026-06-15T10:02:42.8320437Z             },
2026-06-15T10:02:42.8320510Z             {
2026-06-15T10:02:42.8320610Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T10:02:42.8320703Z               "line": 444
2026-06-15T10:02:42.8320774Z             }
2026-06-15T10:02:42.8320855Z           ]
2026-06-15T10:02:42.8320928Z         },
2026-06-15T10:02:42.8321018Z         "int": {
2026-06-15T10:02:42.8321238Z           "complete": false,
2026-06-15T10:02:42.8321329Z           "evidence": []
2026-06-15T10:02:42.8321413Z         },
2026-06-15T10:02:42.8321581Z         "unit": {
2026-06-15T10:02:42.8321676Z           "complete": true,
2026-06-15T10:02:42.8321766Z           "evidence": [
2026-06-15T10:02:42.8321853Z             {
2026-06-15T10:02:42.8321966Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8322057Z               "line": 900
2026-06-15T10:02:42.8322154Z             },
2026-06-15T10:02:42.8322235Z             {
2026-06-15T10:02:42.8322353Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8322449Z               "line": 1233
2026-06-15T10:02:42.8322540Z             },
2026-06-15T10:02:42.8322624Z             {
2026-06-15T10:02:42.8322740Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8322831Z               "line": 1244
2026-06-15T10:02:42.8322911Z             },
2026-06-15T10:02:42.8323000Z             {
2026-06-15T10:02:42.8323110Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8323191Z               "line": 1260
2026-06-15T10:02:42.8323289Z             },
2026-06-15T10:02:42.8323360Z             {
2026-06-15T10:02:42.8323475Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8323567Z               "line": 1276
2026-06-15T10:02:42.8323656Z             },
2026-06-15T10:02:42.8323742Z             {
2026-06-15T10:02:42.8323852Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8323947Z               "line": 1298
2026-06-15T10:02:42.8324023Z             },
2026-06-15T10:02:42.8324110Z             {
2026-06-15T10:02:42.8324229Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8324323Z               "line": 1603
2026-06-15T10:02:42.8324405Z             },
2026-06-15T10:02:42.8324491Z             {
2026-06-15T10:02:42.8324604Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T10:02:42.8324696Z               "line": 130
2026-06-15T10:02:42.8324773Z             },
2026-06-15T10:02:42.8324853Z             {
2026-06-15T10:02:42.8324967Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T10:02:42.8325059Z               "line": 167
2026-06-15T10:02:42.8325144Z             },
2026-06-15T10:02:42.8325225Z             {
2026-06-15T10:02:42.8325316Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T10:02:42.8325412Z               "line": 175
2026-06-15T10:02:42.8325487Z             },
2026-06-15T10:02:42.8325573Z             {
2026-06-15T10:02:42.8325679Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-15T10:02:42.8325769Z               "line": 183
2026-06-15T10:02:42.8325848Z             },
2026-06-15T10:02:42.8325929Z             {
2026-06-15T10:02:42.8326030Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T10:02:42.8326123Z               "line": 896
2026-06-15T10:02:42.8326203Z             }
2026-06-15T10:02:42.8326285Z           ]
2026-06-15T10:02:42.8326362Z         }
2026-06-15T10:02:42.8326452Z       }
2026-06-15T10:02:42.8326523Z     },
2026-06-15T10:02:42.8326614Z     {
2026-06-15T10:02:42.8326714Z       "id": "REQ-INST-11",
2026-06-15T10:02:42.8326934Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-15T10:02:42.8327033Z       "requiredStages": [
2026-06-15T10:02:42.8327115Z         "impl",
2026-06-15T10:02:42.8327195Z         "unit"
2026-06-15T10:02:42.8327277Z       ],
2026-06-15T10:02:42.8327362Z       "stages": {
2026-06-15T10:02:42.8327453Z         "doc": {
2026-06-15T10:02:42.8327548Z           "complete": false,
2026-06-15T10:02:42.8327640Z           "evidence": []
2026-06-15T10:02:42.8327720Z         },
2026-06-15T10:02:42.8327810Z         "impl": {
2026-06-15T10:02:42.8327907Z           "complete": true,
2026-06-15T10:02:42.8327997Z           "evidence": [
2026-06-15T10:02:42.8328072Z             {
2026-06-15T10:02:42.8328193Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8328359Z               "line": 482
2026-06-15T10:02:42.8328435Z             },
2026-06-15T10:02:42.8328510Z             {
2026-06-15T10:02:42.8328708Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.8328798Z               "line": 297
2026-06-15T10:02:42.8328880Z             },
2026-06-15T10:02:42.8329042Z             {
2026-06-15T10:02:42.8329166Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T10:02:42.8329243Z               "line": 59
2026-06-15T10:02:42.8329324Z             },
2026-06-15T10:02:42.8329409Z             {
2026-06-15T10:02:42.8329510Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8329600Z               "line": 4736
2026-06-15T10:02:42.8329681Z             },
2026-06-15T10:02:42.8329786Z             {
2026-06-15T10:02:42.8329896Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8329986Z               "line": 6051
2026-06-15T10:02:42.8330063Z             }
2026-06-15T10:02:42.8330159Z           ]
2026-06-15T10:02:42.8330234Z         },
2026-06-15T10:02:42.8330330Z         "int": {
2026-06-15T10:02:42.8330425Z           "complete": false,
2026-06-15T10:02:42.8330521Z           "evidence": []
2026-06-15T10:02:42.8330611Z         },
2026-06-15T10:02:42.8330697Z         "unit": {
2026-06-15T10:02:42.8330789Z           "complete": true,
2026-06-15T10:02:42.8330869Z           "evidence": [
2026-06-15T10:02:42.8330954Z             {
2026-06-15T10:02:42.8331079Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8331160Z               "line": 1403
2026-06-15T10:02:42.8331245Z             },
2026-06-15T10:02:42.8331320Z             {
2026-06-15T10:02:42.8331430Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8331522Z               "line": 1436
2026-06-15T10:02:42.8331612Z             },
2026-06-15T10:02:42.8331697Z             {
2026-06-15T10:02:42.8331817Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.8331917Z               "line": 527
2026-06-15T10:02:42.8331992Z             },
2026-06-15T10:02:42.8332084Z             {
2026-06-15T10:02:42.8332203Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T10:02:42.8332293Z               "line": 160
2026-06-15T10:02:42.8332384Z             },
2026-06-15T10:02:42.8332460Z             {
2026-06-15T10:02:42.8332575Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T10:02:42.8332665Z               "line": 190
2026-06-15T10:02:42.8332747Z             },
2026-06-15T10:02:42.8332832Z             {
2026-06-15T10:02:42.8332951Z               "path": "crates/spt-store/src/rename.rs",
2026-06-15T10:02:42.8333043Z               "line": 225
2026-06-15T10:02:42.8333119Z             },
2026-06-15T10:02:42.8333198Z             {
2026-06-15T10:02:42.8333295Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8333386Z               "line": 6440
2026-06-15T10:02:42.8333475Z             }
2026-06-15T10:02:42.8333560Z           ]
2026-06-15T10:02:42.8333641Z         }
2026-06-15T10:02:42.8333718Z       }
2026-06-15T10:02:42.8333793Z     },
2026-06-15T10:02:42.8333873Z     {
2026-06-15T10:02:42.8333968Z       "id": "REQ-INST-12",
2026-06-15T10:02:42.8334259Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-15T10:02:42.8334360Z       "requiredStages": [
2026-06-15T10:02:42.8334436Z         "impl",
2026-06-15T10:02:42.8334516Z         "unit"
2026-06-15T10:02:42.8334602Z       ],
2026-06-15T10:02:42.8334689Z       "stages": {
2026-06-15T10:02:42.8334770Z         "doc": {
2026-06-15T10:02:42.8334864Z           "complete": false,
2026-06-15T10:02:42.8334956Z           "evidence": []
2026-06-15T10:02:42.8335046Z         },
2026-06-15T10:02:42.8335122Z         "impl": {
2026-06-15T10:02:42.8335213Z           "complete": true,
2026-06-15T10:02:42.8335304Z           "evidence": [
2026-06-15T10:02:42.8335389Z             {
2026-06-15T10:02:42.8335624Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8335713Z               "line": 534
2026-06-15T10:02:42.8335799Z             },
2026-06-15T10:02:42.8335982Z             {
2026-06-15T10:02:42.8336105Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8336196Z               "line": 627
2026-06-15T10:02:42.8336277Z             },
2026-06-15T10:02:42.8336362Z             {
2026-06-15T10:02:42.8336480Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8336575Z               "line": 707
2026-06-15T10:02:42.8336651Z             },
2026-06-15T10:02:42.8336745Z             {
2026-06-15T10:02:42.8336860Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8336950Z               "line": 96
2026-06-15T10:02:42.8337036Z             },
2026-06-15T10:02:42.8337112Z             {
2026-06-15T10:02:42.8337227Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8337323Z               "line": 269
2026-06-15T10:02:42.8337402Z             },
2026-06-15T10:02:42.8337479Z             {
2026-06-15T10:02:42.8337598Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T10:02:42.8337698Z               "line": 135
2026-06-15T10:02:42.8337774Z             }
2026-06-15T10:02:42.8337852Z           ]
2026-06-15T10:02:42.8337932Z         },
2026-06-15T10:02:42.8338027Z         "int": {
2026-06-15T10:02:42.8338118Z           "complete": false,
2026-06-15T10:02:42.8338214Z           "evidence": []
2026-06-15T10:02:42.8338299Z         },
2026-06-15T10:02:42.8338385Z         "unit": {
2026-06-15T10:02:42.8338481Z           "complete": true,
2026-06-15T10:02:42.8338566Z           "evidence": [
2026-06-15T10:02:42.8338652Z             {
2026-06-15T10:02:42.8338763Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8338853Z               "line": 1478
2026-06-15T10:02:42.8339036Z             },
2026-06-15T10:02:42.8339118Z             {
2026-06-15T10:02:42.8339245Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8339335Z               "line": 1501
2026-06-15T10:02:42.8339426Z             },
2026-06-15T10:02:42.8339508Z             {
2026-06-15T10:02:42.8339635Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8339731Z               "line": 1538
2026-06-15T10:02:42.8339827Z             },
2026-06-15T10:02:42.8339903Z             {
2026-06-15T10:02:42.8340017Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8340109Z               "line": 457
2026-06-15T10:02:42.8340189Z             },
2026-06-15T10:02:42.8340265Z             {
2026-06-15T10:02:42.8340385Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T10:02:42.8340475Z               "line": 172
2026-06-15T10:02:42.8340561Z             },
2026-06-15T10:02:42.8340637Z             {
2026-06-15T10:02:42.8340748Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T10:02:42.8340837Z               "line": 193
2026-06-15T10:02:42.8340923Z             },
2026-06-15T10:02:42.8341009Z             {
2026-06-15T10:02:42.8341123Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T10:02:42.8341224Z               "line": 219
2026-06-15T10:02:42.8341305Z             }
2026-06-15T10:02:42.8341392Z           ]
2026-06-15T10:02:42.8341480Z         }
2026-06-15T10:02:42.8341557Z       }
2026-06-15T10:02:42.8341644Z     },
2026-06-15T10:02:42.8341720Z     {
2026-06-15T10:02:42.8341819Z       "id": "REQ-INST-13",
2026-06-15T10:02:42.8342000Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-15T10:02:42.8342096Z       "requiredStages": [
2026-06-15T10:02:42.8342190Z         "impl",
2026-06-15T10:02:42.8342271Z         "unit"
2026-06-15T10:02:42.8342358Z       ],
2026-06-15T10:02:42.8342444Z       "stages": {
2026-06-15T10:02:42.8342529Z         "doc": {
2026-06-15T10:02:42.8342620Z           "complete": false,
2026-06-15T10:02:42.8342711Z           "evidence": []
2026-06-15T10:02:42.8342896Z         },
2026-06-15T10:02:42.8342983Z         "impl": {
2026-06-15T10:02:42.8343082Z           "complete": true,
2026-06-15T10:02:42.8343269Z           "evidence": [
2026-06-15T10:02:42.8343359Z             {
2026-06-15T10:02:42.8343473Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T10:02:42.8343564Z               "line": 100
2026-06-15T10:02:42.8343650Z             },
2026-06-15T10:02:42.8343735Z             {
2026-06-15T10:02:42.8343855Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T10:02:42.8343937Z               "line": 158
2026-06-15T10:02:42.8344021Z             }
2026-06-15T10:02:42.8344101Z           ]
2026-06-15T10:02:42.8344182Z         },
2026-06-15T10:02:42.8344268Z         "int": {
2026-06-15T10:02:42.8344362Z           "complete": false,
2026-06-15T10:02:42.8344457Z           "evidence": []
2026-06-15T10:02:42.8344533Z         },
2026-06-15T10:02:42.8344629Z         "unit": {
2026-06-15T10:02:42.8344729Z           "complete": true,
2026-06-15T10:02:42.8344819Z           "evidence": [
2026-06-15T10:02:42.8344905Z             {
2026-06-15T10:02:42.8345029Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T10:02:42.8345129Z               "line": 248
2026-06-15T10:02:42.8345206Z             },
2026-06-15T10:02:42.8345305Z             {
2026-06-15T10:02:42.8345419Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-15T10:02:42.8345511Z               "line": 266
2026-06-15T10:02:42.8345587Z             }
2026-06-15T10:02:42.8345664Z           ]
2026-06-15T10:02:42.8345758Z         }
2026-06-15T10:02:42.8345840Z       }
2026-06-15T10:02:42.8345930Z     },
2026-06-15T10:02:42.8346007Z     {
2026-06-15T10:02:42.8346102Z       "id": "REQ-INST-14",
2026-06-15T10:02:42.8346461Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-15T10:02:42.8346551Z       "requiredStages": [
2026-06-15T10:02:42.8346635Z         "doc",
2026-06-15T10:02:42.8346717Z         "impl",
2026-06-15T10:02:42.8346804Z         "unit"
2026-06-15T10:02:42.8346880Z       ],
2026-06-15T10:02:42.8346978Z       "stages": {
2026-06-15T10:02:42.8347058Z         "doc": {
2026-06-15T10:02:42.8347150Z           "complete": true,
2026-06-15T10:02:42.8347244Z           "evidence": [
2026-06-15T10:02:42.8347328Z             {
2026-06-15T10:02:42.8347429Z               "path": "CONTEXT.md",
2026-06-15T10:02:42.8347515Z               "line": 530
2026-06-15T10:02:42.8347591Z             },
2026-06-15T10:02:42.8347676Z             {
2026-06-15T10:02:42.8347773Z               "path": "docs/STORAGE.md",
2026-06-15T10:02:42.8347863Z               "line": 49
2026-06-15T10:02:42.8347948Z             }
2026-06-15T10:02:42.8348034Z           ]
2026-06-15T10:02:42.8348112Z         },
2026-06-15T10:02:42.8348202Z         "impl": {
2026-06-15T10:02:42.8348291Z           "complete": true,
2026-06-15T10:02:42.8348383Z           "evidence": [
2026-06-15T10:02:42.8348469Z             {
2026-06-15T10:02:42.8348597Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8348693Z               "line": 404
2026-06-15T10:02:42.8348784Z             },
2026-06-15T10:02:42.8348859Z             {
2026-06-15T10:02:42.8349056Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8349145Z               "line": 346
2026-06-15T10:02:42.8349226Z             },
2026-06-15T10:02:42.8349313Z             {
2026-06-15T10:02:42.8349432Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T10:02:42.8349521Z               "line": 221
2026-06-15T10:02:42.8349601Z             },
2026-06-15T10:02:42.8349683Z             {
2026-06-15T10:02:42.8349791Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8349895Z               "line": 1372
2026-06-15T10:02:42.8349972Z             }
2026-06-15T10:02:42.8350058Z           ]
2026-06-15T10:02:42.8350129Z         },
2026-06-15T10:02:42.8350215Z         "int": {
2026-06-15T10:02:42.8350415Z           "complete": false,
2026-06-15T10:02:42.8350500Z           "evidence": []
2026-06-15T10:02:42.8350591Z         },
2026-06-15T10:02:42.8350754Z         "unit": {
2026-06-15T10:02:42.8350849Z           "complete": true,
2026-06-15T10:02:42.8350940Z           "evidence": [
2026-06-15T10:02:42.8351025Z             {
2026-06-15T10:02:42.8351154Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8351245Z               "line": 1111
2026-06-15T10:02:42.8351326Z             },
2026-06-15T10:02:42.8351402Z             {
2026-06-15T10:02:42.8351521Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8351599Z               "line": 912
2026-06-15T10:02:42.8351683Z             },
2026-06-15T10:02:42.8351769Z             {
2026-06-15T10:02:42.8351885Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8351980Z               "line": 1173
2026-06-15T10:02:42.8352055Z             },
2026-06-15T10:02:42.8352151Z             {
2026-06-15T10:02:42.8352248Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T10:02:42.8352346Z               "line": 490
2026-06-15T10:02:42.8352440Z             },
2026-06-15T10:02:42.8352521Z             {
2026-06-15T10:02:42.8352637Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8352722Z               "line": 6516
2026-06-15T10:02:42.8352807Z             }
2026-06-15T10:02:42.8352894Z           ]
2026-06-15T10:02:42.8352966Z         }
2026-06-15T10:02:42.8353051Z       }
2026-06-15T10:02:42.8353126Z     },
2026-06-15T10:02:42.8353214Z     {
2026-06-15T10:02:42.8353304Z       "id": "REQ-INST-15",
2026-06-15T10:02:42.8354000Z       "title": "Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)",
2026-06-15T10:02:42.8354110Z       "requiredStages": [
2026-06-15T10:02:42.8354196Z         "doc",
2026-06-15T10:02:42.8354286Z         "impl",
2026-06-15T10:02:42.8354362Z         "unit"
2026-06-15T10:02:42.8354453Z       ],
2026-06-15T10:02:42.8354530Z       "stages": {
2026-06-15T10:02:42.8354619Z         "doc": {
2026-06-15T10:02:42.8354704Z           "complete": true,
2026-06-15T10:02:42.8354800Z           "evidence": [
2026-06-15T10:02:42.8354890Z             {
2026-06-15T10:02:42.8355064Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-15T10:02:42.8355150Z               "line": 3
2026-06-15T10:02:42.8355233Z             }
2026-06-15T10:02:42.8355321Z           ]
2026-06-15T10:02:42.8355407Z         },
2026-06-15T10:02:42.8355499Z         "impl": {
2026-06-15T10:02:42.8355599Z           "complete": true,
2026-06-15T10:02:42.8355689Z           "evidence": [
2026-06-15T10:02:42.8355766Z             {
2026-06-15T10:02:42.8355890Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8355989Z               "line": 353
2026-06-15T10:02:42.8356076Z             },
2026-06-15T10:02:42.8356152Z             {
2026-06-15T10:02:42.8356271Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T10:02:42.8356361Z               "line": 60
2026-06-15T10:02:42.8356448Z             },
2026-06-15T10:02:42.8356533Z             {
2026-06-15T10:02:42.8356662Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.8356753Z               "line": 368
2026-06-15T10:02:42.8356833Z             },
2026-06-15T10:02:42.8356915Z             {
2026-06-15T10:02:42.8357035Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.8357125Z               "line": 417
2026-06-15T10:02:42.8357200Z             },
2026-06-15T10:02:42.8357282Z             {
2026-06-15T10:02:42.8357397Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T10:02:42.8357487Z               "line": 19
2026-06-15T10:02:42.8357576Z             },
2026-06-15T10:02:42.8357734Z             {
2026-06-15T10:02:42.8357850Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T10:02:42.8357945Z               "line": 70
2026-06-15T10:02:42.8358094Z             },
2026-06-15T10:02:42.8358188Z             {
2026-06-15T10:02:42.8358294Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T10:02:42.8358385Z               "line": 96
2026-06-15T10:02:42.8358475Z             },
2026-06-15T10:02:42.8358551Z             {
2026-06-15T10:02:42.8358667Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T10:02:42.8358752Z               "line": 121
2026-06-15T10:02:42.8358842Z             },
2026-06-15T10:02:42.8358919Z             {
2026-06-15T10:02:42.8359110Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T10:02:42.8359195Z               "line": 172
2026-06-15T10:02:42.8359282Z             },
2026-06-15T10:02:42.8359367Z             {
2026-06-15T10:02:42.8359476Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.8359573Z               "line": 146
2026-06-15T10:02:42.8359649Z             },
2026-06-15T10:02:42.8359728Z             {
2026-06-15T10:02:42.8359834Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8359936Z               "line": 1264
2026-06-15T10:02:42.8360025Z             }
2026-06-15T10:02:42.8360105Z           ]
2026-06-15T10:02:42.8360185Z         },
2026-06-15T10:02:42.8360262Z         "int": {
2026-06-15T10:02:42.8360360Z           "complete": false,
2026-06-15T10:02:42.8360450Z           "evidence": []
2026-06-15T10:02:42.8360536Z         },
2026-06-15T10:02:42.8360628Z         "unit": {
2026-06-15T10:02:42.8360717Z           "complete": true,
2026-06-15T10:02:42.8360812Z           "evidence": [
2026-06-15T10:02:42.8360885Z             {
2026-06-15T10:02:42.8361014Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.8361104Z               "line": 577
2026-06-15T10:02:42.8361190Z             },
2026-06-15T10:02:42.8361271Z             {
2026-06-15T10:02:42.8361389Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.8361486Z               "line": 638
2026-06-15T10:02:42.8361562Z             },
2026-06-15T10:02:42.8361652Z             {
2026-06-15T10:02:42.8361762Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T10:02:42.8361859Z               "line": 213
2026-06-15T10:02:42.8361938Z             },
2026-06-15T10:02:42.8362019Z             {
2026-06-15T10:02:42.8362134Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T10:02:42.8362220Z               "line": 249
2026-06-15T10:02:42.8362300Z             },
2026-06-15T10:02:42.8362387Z             {
2026-06-15T10:02:42.8362503Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T10:02:42.8362600Z               "line": 262
2026-06-15T10:02:42.8362677Z             },
2026-06-15T10:02:42.8362769Z             {
2026-06-15T10:02:42.8362864Z               "path": "crates/spt-store/src/home.rs",
2026-06-15T10:02:42.8362963Z               "line": 338
2026-06-15T10:02:42.8363048Z             },
2026-06-15T10:02:42.8363139Z             {
2026-06-15T10:02:42.8363258Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.8363339Z               "line": 543
2026-06-15T10:02:42.8363430Z             },
2026-06-15T10:02:42.8363507Z             {
2026-06-15T10:02:42.8363615Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8363696Z               "line": 6453
2026-06-15T10:02:42.8363774Z             },
2026-06-15T10:02:42.8363859Z             {
2026-06-15T10:02:42.8363959Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8364054Z               "line": 8097
2026-06-15T10:02:42.8364140Z             }
2026-06-15T10:02:42.8364221Z           ]
2026-06-15T10:02:42.8364302Z         }
2026-06-15T10:02:42.8364379Z       }
2026-06-15T10:02:42.8364460Z     },
2026-06-15T10:02:42.8364536Z     {
2026-06-15T10:02:42.8364636Z       "id": "REQ-INST-2",
2026-06-15T10:02:42.8364747Z       "title": "Per-node files, synced Psyche mind",
2026-06-15T10:02:42.8364960Z       "requiredStages": [
2026-06-15T10:02:42.8365038Z         "impl",
2026-06-15T10:02:42.8365128Z         "unit"
2026-06-15T10:02:42.8365302Z       ],
2026-06-15T10:02:42.8365388Z       "stages": {
2026-06-15T10:02:42.8365478Z         "doc": {
2026-06-15T10:02:42.8365567Z           "complete": false,
2026-06-15T10:02:42.8365663Z           "evidence": []
2026-06-15T10:02:42.8365745Z         },
2026-06-15T10:02:42.8365839Z         "impl": {
2026-06-15T10:02:42.8365934Z           "complete": true,
2026-06-15T10:02:42.8366025Z           "evidence": [
2026-06-15T10:02:42.8366106Z             {
2026-06-15T10:02:42.8366225Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.8366317Z               "line": 88
2026-06-15T10:02:42.8366398Z             },
2026-06-15T10:02:42.8366473Z             {
2026-06-15T10:02:42.8366597Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T10:02:42.8366684Z               "line": 28
2026-06-15T10:02:42.8366779Z             },
2026-06-15T10:02:42.8366854Z             {
2026-06-15T10:02:42.8366974Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T10:02:42.8367069Z               "line": 74
2026-06-15T10:02:42.8367146Z             },
2026-06-15T10:02:42.8367236Z             {
2026-06-15T10:02:42.8367342Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T10:02:42.8367431Z               "line": 96
2026-06-15T10:02:42.8367512Z             },
2026-06-15T10:02:42.8367604Z             {
2026-06-15T10:02:42.8367718Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T10:02:42.8367804Z               "line": 86
2026-06-15T10:02:42.8367895Z             },
2026-06-15T10:02:42.8367967Z             {
2026-06-15T10:02:42.8368084Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-15T10:02:42.8368174Z               "line": 118
2026-06-15T10:02:42.8368270Z             }
2026-06-15T10:02:42.8368354Z           ]
2026-06-15T10:02:42.8368429Z         },
2026-06-15T10:02:42.8368525Z         "int": {
2026-06-15T10:02:42.8368616Z           "complete": false,
2026-06-15T10:02:42.8368711Z           "evidence": []
2026-06-15T10:02:42.8368796Z         },
2026-06-15T10:02:42.8368888Z         "unit": {
2026-06-15T10:02:42.8369040Z           "complete": true,
2026-06-15T10:02:42.8369116Z           "evidence": [
2026-06-15T10:02:42.8369203Z             {
2026-06-15T10:02:42.8369317Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-15T10:02:42.8369411Z               "line": 250
2026-06-15T10:02:42.8369498Z             },
2026-06-15T10:02:42.8369589Z             {
2026-06-15T10:02:42.8369703Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T10:02:42.8369784Z               "line": 280
2026-06-15T10:02:42.8369876Z             }
2026-06-15T10:02:42.8369955Z           ]
2026-06-15T10:02:42.8370031Z         }
2026-06-15T10:02:42.8370123Z       }
2026-06-15T10:02:42.8370200Z     },
2026-06-15T10:02:42.8370275Z     {
2026-06-15T10:02:42.8370370Z       "id": "REQ-INST-3",
2026-06-15T10:02:42.8370529Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-15T10:02:42.8370627Z       "requiredStages": [
2026-06-15T10:02:42.8373180Z         "doc",
2026-06-15T10:02:42.8373280Z         "impl",
2026-06-15T10:02:42.8373368Z         "unit"
2026-06-15T10:02:42.8373447Z       ],
2026-06-15T10:02:42.8373565Z       "stages": {
2026-06-15T10:02:42.8373733Z         "doc": {
2026-06-15T10:02:42.8373899Z           "complete": true,
2026-06-15T10:02:42.8374019Z           "evidence": [
2026-06-15T10:02:42.8374133Z             {
2026-06-15T10:02:42.8374310Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-15T10:02:42.8374509Z               "line": 3
2026-06-15T10:02:42.8374634Z             }
2026-06-15T10:02:42.8374753Z           ]
2026-06-15T10:02:42.8374934Z         },
2026-06-15T10:02:42.8375063Z         "impl": {
2026-06-15T10:02:42.8375200Z           "complete": true,
2026-06-15T10:02:42.8375340Z           "evidence": [
2026-06-15T10:02:42.8375626Z             {
2026-06-15T10:02:42.8375824Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T10:02:42.8375962Z               "line": 59
2026-06-15T10:02:42.8376232Z             },
2026-06-15T10:02:42.8376323Z             {
2026-06-15T10:02:42.8376456Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T10:02:42.8376557Z               "line": 480
2026-06-15T10:02:42.8376643Z             },
2026-06-15T10:02:42.8376728Z             {
2026-06-15T10:02:42.8376857Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.8376948Z               "line": 204
2026-06-15T10:02:42.8377038Z             },
2026-06-15T10:02:42.8377114Z             {
2026-06-15T10:02:42.8377234Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.8377329Z               "line": 334
2026-06-15T10:02:42.8377405Z             },
2026-06-15T10:02:42.8377486Z             {
2026-06-15T10:02:42.8377601Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.8377701Z               "line": 368
2026-06-15T10:02:42.8377782Z             },
2026-06-15T10:02:42.8377864Z             {
2026-06-15T10:02:42.8377991Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-15T10:02:42.8378077Z               "line": 74
2026-06-15T10:02:42.8378169Z             },
2026-06-15T10:02:42.8378245Z             {
2026-06-15T10:02:42.8378378Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8378460Z               "line": 234
2026-06-15T10:02:42.8378555Z             },
2026-06-15T10:02:42.8378639Z             {
2026-06-15T10:02:42.8378768Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8378868Z               "line": 390
2026-06-15T10:02:42.8379042Z             },
2026-06-15T10:02:42.8379167Z             {
2026-06-15T10:02:42.8379295Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8379394Z               "line": 45
2026-06-15T10:02:42.8379501Z             },
2026-06-15T10:02:42.8379600Z             {
2026-06-15T10:02:42.8379714Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8379806Z               "line": 114
2026-06-15T10:02:42.8379911Z             },
2026-06-15T10:02:42.8380000Z             {
2026-06-15T10:02:42.8380116Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8380215Z               "line": 152
2026-06-15T10:02:42.8380296Z             },
2026-06-15T10:02:42.8380378Z             {
2026-06-15T10:02:42.8380492Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8380582Z               "line": 168
2026-06-15T10:02:42.8380659Z             },
2026-06-15T10:02:42.8380750Z             {
2026-06-15T10:02:42.8380863Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8380949Z               "line": 178
2026-06-15T10:02:42.8381036Z             },
2026-06-15T10:02:42.8381108Z             {
2026-06-15T10:02:42.8381220Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8381320Z               "line": 210
2026-06-15T10:02:42.8381406Z             },
2026-06-15T10:02:42.8381490Z             {
2026-06-15T10:02:42.8381608Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8381700Z               "line": 287
2026-06-15T10:02:42.8381782Z             },
2026-06-15T10:02:42.8381866Z             {
2026-06-15T10:02:42.8381986Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8382077Z               "line": 311
2026-06-15T10:02:42.8382166Z             },
2026-06-15T10:02:42.8382247Z             {
2026-06-15T10:02:42.8382358Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8382444Z               "line": 389
2026-06-15T10:02:42.8382519Z             },
2026-06-15T10:02:42.8382601Z             {
2026-06-15T10:02:42.8382715Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8382806Z               "line": 438
2026-06-15T10:02:42.8382993Z             },
2026-06-15T10:02:42.8383077Z             {
2026-06-15T10:02:42.8383197Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-15T10:02:42.8383377Z               "line": 37
2026-06-15T10:02:42.8383464Z             },
2026-06-15T10:02:42.8383545Z             {
2026-06-15T10:02:42.8383665Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8383749Z               "line": 62
2026-06-15T10:02:42.8383841Z             },
2026-06-15T10:02:42.8383918Z             {
2026-06-15T10:02:42.8384035Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T10:02:42.8384130Z               "line": 200
2026-06-15T10:02:42.8384211Z             },
2026-06-15T10:02:42.8384288Z             {
2026-06-15T10:02:42.8384392Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8384487Z               "line": 1597
2026-06-15T10:02:42.8384564Z             }
2026-06-15T10:02:42.8384655Z           ]
2026-06-15T10:02:42.8384731Z         },
2026-06-15T10:02:42.8384821Z         "int": {
2026-06-15T10:02:42.8384913Z           "complete": false,
2026-06-15T10:02:42.8385003Z           "evidence": []
2026-06-15T10:02:42.8385084Z         },
2026-06-15T10:02:42.8385165Z         "unit": {
2026-06-15T10:02:42.8385265Z           "complete": true,
2026-06-15T10:02:42.8385356Z           "evidence": [
2026-06-15T10:02:42.8385441Z             {
2026-06-15T10:02:42.8385557Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T10:02:42.8385647Z               "line": 360
2026-06-15T10:02:42.8385732Z             },
2026-06-15T10:02:42.8385809Z             {
2026-06-15T10:02:42.8385928Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.8386023Z               "line": 787
2026-06-15T10:02:42.8386100Z             },
2026-06-15T10:02:42.8386177Z             {
2026-06-15T10:02:42.8386299Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.8386394Z               "line": 844
2026-06-15T10:02:42.8386465Z             },
2026-06-15T10:02:42.8386560Z             {
2026-06-15T10:02:42.8386682Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.8386773Z               "line": 889
2026-06-15T10:02:42.8386870Z             },
2026-06-15T10:02:42.8386950Z             {
2026-06-15T10:02:42.8387069Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.8387165Z               "line": 1014
2026-06-15T10:02:42.8387250Z             },
2026-06-15T10:02:42.8387326Z             {
2026-06-15T10:02:42.8387446Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8387541Z               "line": 1212
2026-06-15T10:02:42.8387617Z             },
2026-06-15T10:02:42.8387708Z             {
2026-06-15T10:02:42.8387832Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8387922Z               "line": 1353
2026-06-15T10:02:42.8388013Z             },
2026-06-15T10:02:42.8388090Z             {
2026-06-15T10:02:42.8388204Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8388299Z               "line": 449
2026-06-15T10:02:42.8388376Z             },
2026-06-15T10:02:42.8388462Z             {
2026-06-15T10:02:42.8388581Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8388676Z               "line": 485
2026-06-15T10:02:42.8388753Z             },
2026-06-15T10:02:42.8388838Z             {
2026-06-15T10:02:42.8389035Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8389125Z               "line": 540
2026-06-15T10:02:42.8389213Z             },
2026-06-15T10:02:42.8389304Z             {
2026-06-15T10:02:42.8389432Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8389517Z               "line": 697
2026-06-15T10:02:42.8389592Z             },
2026-06-15T10:02:42.8389674Z             {
2026-06-15T10:02:42.8389794Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8389892Z               "line": 931
2026-06-15T10:02:42.8390075Z             },
2026-06-15T10:02:42.8390160Z             {
2026-06-15T10:02:42.8390274Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8390457Z               "line": 945
2026-06-15T10:02:42.8390541Z             },
2026-06-15T10:02:42.8390633Z             {
2026-06-15T10:02:42.8390742Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8390832Z               "line": 1214
2026-06-15T10:02:42.8390923Z             },
2026-06-15T10:02:42.8391000Z             {
2026-06-15T10:02:42.8391113Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T10:02:42.8391204Z               "line": 440
2026-06-15T10:02:42.8391286Z             },
2026-06-15T10:02:42.8391367Z             {
2026-06-15T10:02:42.8391467Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8391563Z               "line": 6477
2026-06-15T10:02:42.8391635Z             }
2026-06-15T10:02:42.8391714Z           ]
2026-06-15T10:02:42.8391790Z         }
2026-06-15T10:02:42.8391885Z       }
2026-06-15T10:02:42.8391961Z     },
2026-06-15T10:02:42.8392036Z     {
2026-06-15T10:02:42.8392121Z       "id": "REQ-INST-4",
2026-06-15T10:02:42.8392298Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-15T10:02:42.8392393Z       "requiredStages": [
2026-06-15T10:02:42.8392483Z         "impl",
2026-06-15T10:02:42.8392560Z         "unit"
2026-06-15T10:02:42.8392651Z       ],
2026-06-15T10:02:42.8392726Z       "stages": {
2026-06-15T10:02:42.8392817Z         "doc": {
2026-06-15T10:02:42.8392909Z           "complete": false,
2026-06-15T10:02:42.8393004Z           "evidence": []
2026-06-15T10:02:42.8393084Z         },
2026-06-15T10:02:42.8393166Z         "impl": {
2026-06-15T10:02:42.8393261Z           "complete": true,
2026-06-15T10:02:42.8393342Z           "evidence": [
2026-06-15T10:02:42.8393432Z             {
2026-06-15T10:02:42.8393553Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.8393647Z               "line": 335
2026-06-15T10:02:42.8393733Z             },
2026-06-15T10:02:42.8393815Z             {
2026-06-15T10:02:42.8393933Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8394028Z               "line": 202
2026-06-15T10:02:42.8394115Z             },
2026-06-15T10:02:42.8394192Z             {
2026-06-15T10:02:42.8394304Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8394401Z               "line": 234
2026-06-15T10:02:42.8394478Z             },
2026-06-15T10:02:42.8394563Z             {
2026-06-15T10:02:42.8394667Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8394752Z               "line": 274
2026-06-15T10:02:42.8394829Z             }
2026-06-15T10:02:42.8394915Z           ]
2026-06-15T10:02:42.8395005Z         },
2026-06-15T10:02:42.8395091Z         "int": {
2026-06-15T10:02:42.8395187Z           "complete": false,
2026-06-15T10:02:42.8395277Z           "evidence": []
2026-06-15T10:02:42.8395366Z         },
2026-06-15T10:02:42.8395454Z         "unit": {
2026-06-15T10:02:42.8395549Z           "complete": true,
2026-06-15T10:02:42.8395639Z           "evidence": [
2026-06-15T10:02:42.8395725Z             {
2026-06-15T10:02:42.8395849Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.8395939Z               "line": 839
2026-06-15T10:02:42.8396030Z             },
2026-06-15T10:02:42.8396112Z             {
2026-06-15T10:02:42.8396230Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8396321Z               "line": 561
2026-06-15T10:02:42.8396399Z             },
2026-06-15T10:02:42.8396488Z             {
2026-06-15T10:02:42.8396602Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8396698Z               "line": 668
2026-06-15T10:02:42.8396779Z             },
2026-06-15T10:02:42.8396874Z             {
2026-06-15T10:02:42.8396997Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8397082Z               "line": 750
2026-06-15T10:02:42.8397242Z             }
2026-06-15T10:02:42.8397323Z           ]
2026-06-15T10:02:42.8397410Z         }
2026-06-15T10:02:42.8397491Z       }
2026-06-15T10:02:42.8397638Z     },
2026-06-15T10:02:42.8397725Z     {
2026-06-15T10:02:42.8397820Z       "id": "REQ-INST-5",
2026-06-15T10:02:42.8398007Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-15T10:02:42.8398106Z       "requiredStages": [
2026-06-15T10:02:42.8398196Z         "impl",
2026-06-15T10:02:42.8398268Z         "unit",
2026-06-15T10:02:42.8398354Z         "int"
2026-06-15T10:02:42.8398444Z       ],
2026-06-15T10:02:42.8398530Z       "stages": {
2026-06-15T10:02:42.8398606Z         "doc": {
2026-06-15T10:02:42.8398702Z           "complete": false,
2026-06-15T10:02:42.8398797Z           "evidence": []
2026-06-15T10:02:42.8398868Z         },
2026-06-15T10:02:42.8399064Z         "impl": {
2026-06-15T10:02:42.8399164Z           "complete": true,
2026-06-15T10:02:42.8399251Z           "evidence": [
2026-06-15T10:02:42.8399337Z             {
2026-06-15T10:02:42.8399455Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-15T10:02:42.8399547Z               "line": 85
2026-06-15T10:02:42.8399633Z             },
2026-06-15T10:02:42.8399717Z             {
2026-06-15T10:02:42.8399835Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T10:02:42.8399922Z               "line": 68
2026-06-15T10:02:42.8400011Z             },
2026-06-15T10:02:42.8400091Z             {
2026-06-15T10:02:42.8400205Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T10:02:42.8400297Z               "line": 99
2026-06-15T10:02:42.8400377Z             },
2026-06-15T10:02:42.8400462Z             {
2026-06-15T10:02:42.8400563Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T10:02:42.8400663Z               "line": 183
2026-06-15T10:02:42.8400748Z             },
2026-06-15T10:02:42.8400825Z             {
2026-06-15T10:02:42.8400926Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T10:02:42.8401031Z               "line": 314
2026-06-15T10:02:42.8401115Z             }
2026-06-15T10:02:42.8401193Z           ]
2026-06-15T10:02:42.8401283Z         },
2026-06-15T10:02:42.8401369Z         "int": {
2026-06-15T10:02:42.8401464Z           "complete": true,
2026-06-15T10:02:42.8401551Z           "evidence": [
2026-06-15T10:02:42.8401635Z             {
2026-06-15T10:02:42.8401764Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T10:02:42.8401856Z               "line": 156
2026-06-15T10:02:42.8401941Z             },
2026-06-15T10:02:42.8402017Z             {
2026-06-15T10:02:42.8402152Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T10:02:42.8402251Z               "line": 102
2026-06-15T10:02:42.8402340Z             },
2026-06-15T10:02:42.8402420Z             {
2026-06-15T10:02:42.8402545Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8402634Z               "line": 638
2026-06-15T10:02:42.8402719Z             },
2026-06-15T10:02:42.8402810Z             {
2026-06-15T10:02:42.8402925Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8403024Z               "line": 975
2026-06-15T10:02:42.8403120Z             }
2026-06-15T10:02:42.8403192Z           ]
2026-06-15T10:02:42.8403282Z         },
2026-06-15T10:02:42.8403358Z         "unit": {
2026-06-15T10:02:42.8403459Z           "complete": true,
2026-06-15T10:02:42.8403544Z           "evidence": [
2026-06-15T10:02:42.8403629Z             {
2026-06-15T10:02:42.8403745Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T10:02:42.8403826Z               "line": 552
2026-06-15T10:02:42.8403912Z             },
2026-06-15T10:02:42.8403983Z             {
2026-06-15T10:02:42.8404099Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T10:02:42.8404178Z               "line": 595
2026-06-15T10:02:42.8404273Z             },
2026-06-15T10:02:42.8404350Z             {
2026-06-15T10:02:42.8404470Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T10:02:42.8404685Z               "line": 219
2026-06-15T10:02:42.8404762Z             }
2026-06-15T10:02:42.8404845Z           ]
2026-06-15T10:02:42.8405019Z         }
2026-06-15T10:02:42.8405105Z       }
2026-06-15T10:02:42.8405188Z     },
2026-06-15T10:02:42.8405260Z     {
2026-06-15T10:02:42.8405355Z       "id": "REQ-INST-6",
2026-06-15T10:02:42.8405532Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-15T10:02:42.8405631Z       "requiredStages": [
2026-06-15T10:02:42.8405718Z         "impl",
2026-06-15T10:02:42.8405795Z         "unit",
2026-06-15T10:02:42.8405879Z         "int"
2026-06-15T10:02:42.8405956Z       ],
2026-06-15T10:02:42.8406038Z       "stages": {
2026-06-15T10:02:42.8406123Z         "doc": {
2026-06-15T10:02:42.8406223Z           "complete": true,
2026-06-15T10:02:42.8406309Z           "evidence": [
2026-06-15T10:02:42.8406400Z             {
2026-06-15T10:02:42.8406504Z               "path": "docs/DEFERRED.md",
2026-06-15T10:02:42.8406595Z               "line": 13
2026-06-15T10:02:42.8406682Z             }
2026-06-15T10:02:42.8406762Z           ]
2026-06-15T10:02:42.8406843Z         },
2026-06-15T10:02:42.8406925Z         "impl": {
2026-06-15T10:02:42.8407015Z           "complete": true,
2026-06-15T10:02:42.8407114Z           "evidence": [
2026-06-15T10:02:42.8407191Z             {
2026-06-15T10:02:42.8407307Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T10:02:42.8407400Z               "line": 391
2026-06-15T10:02:42.8407481Z             },
2026-06-15T10:02:42.8407557Z             {
2026-06-15T10:02:42.8407680Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T10:02:42.8407770Z               "line": 27
2026-06-15T10:02:42.8407840Z             },
2026-06-15T10:02:42.8407927Z             {
2026-06-15T10:02:42.8408042Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T10:02:42.8408131Z               "line": 73
2026-06-15T10:02:42.8408198Z             },
2026-06-15T10:02:42.8408280Z             {
2026-06-15T10:02:42.8408404Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-15T10:02:42.8408498Z               "line": 182
2026-06-15T10:02:42.8408595Z             },
2026-06-15T10:02:42.8408671Z             {
2026-06-15T10:02:42.8408784Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8408882Z               "line": 426
2026-06-15T10:02:42.8409057Z             },
2026-06-15T10:02:42.8409143Z             {
2026-06-15T10:02:42.8409258Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-15T10:02:42.8409353Z               "line": 31
2026-06-15T10:02:42.8409428Z             },
2026-06-15T10:02:42.8409521Z             {
2026-06-15T10:02:42.8409629Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T10:02:42.8409720Z               "line": 202
2026-06-15T10:02:42.8409806Z             },
2026-06-15T10:02:42.8409878Z             {
2026-06-15T10:02:42.8409991Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T10:02:42.8410077Z               "line": 83
2026-06-15T10:02:42.8410169Z             },
2026-06-15T10:02:42.8410259Z             {
2026-06-15T10:02:42.8410357Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8410453Z               "line": 1598
2026-06-15T10:02:42.8410534Z             },
2026-06-15T10:02:42.8410613Z             {
2026-06-15T10:02:42.8410722Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T10:02:42.8410813Z               "line": 179
2026-06-15T10:02:42.8410889Z             },
2026-06-15T10:02:42.8410980Z             {
2026-06-15T10:02:42.8411089Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T10:02:42.8411176Z               "line": 215
2026-06-15T10:02:42.8411252Z             }
2026-06-15T10:02:42.8411332Z           ]
2026-06-15T10:02:42.8411419Z         },
2026-06-15T10:02:42.8411505Z         "int": {
2026-06-15T10:02:42.8411586Z           "complete": true,
2026-06-15T10:02:42.8411675Z           "evidence": [
2026-06-15T10:02:42.8411857Z             {
2026-06-15T10:02:42.8411990Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8412082Z               "line": 652
2026-06-15T10:02:42.8412267Z             },
2026-06-15T10:02:42.8412358Z             {
2026-06-15T10:02:42.8412473Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8412572Z               "line": 1020
2026-06-15T10:02:42.8412649Z             },
2026-06-15T10:02:42.8412736Z             {
2026-06-15T10:02:42.8412844Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T10:02:42.8412943Z               "line": 726
2026-06-15T10:02:42.8413029Z             }
2026-06-15T10:02:42.8413110Z           ]
2026-06-15T10:02:42.8413198Z         },
2026-06-15T10:02:42.8413284Z         "unit": {
2026-06-15T10:02:42.8413380Z           "complete": true,
2026-06-15T10:02:42.8413472Z           "evidence": [
2026-06-15T10:02:42.8413546Z             {
2026-06-15T10:02:42.8413661Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T10:02:42.8413757Z               "line": 661
2026-06-15T10:02:42.8413847Z             },
2026-06-15T10:02:42.8413923Z             {
2026-06-15T10:02:42.8414043Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.8414134Z               "line": 899
2026-06-15T10:02:42.8414204Z             },
2026-06-15T10:02:42.8414286Z             {
2026-06-15T10:02:42.8414400Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-15T10:02:42.8414495Z               "line": 66
2026-06-15T10:02:42.8414585Z             },
2026-06-15T10:02:42.8414659Z             {
2026-06-15T10:02:42.8414772Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T10:02:42.8414867Z               "line": 297
2026-06-15T10:02:42.8414954Z             },
2026-06-15T10:02:42.8415030Z             {
2026-06-15T10:02:42.8415148Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T10:02:42.8415235Z               "line": 203
2026-06-15T10:02:42.8415322Z             }
2026-06-15T10:02:42.8415415Z           ]
2026-06-15T10:02:42.8415497Z         }
2026-06-15T10:02:42.8415588Z       }
2026-06-15T10:02:42.8415665Z     },
2026-06-15T10:02:42.8415753Z     {
2026-06-15T10:02:42.8415843Z       "id": "REQ-INST-7",
2026-06-15T10:02:42.8415983Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-15T10:02:42.8416082Z       "requiredStages": [
2026-06-15T10:02:42.8416163Z         "impl",
2026-06-15T10:02:42.8416254Z         "unit",
2026-06-15T10:02:42.8416326Z         "int"
2026-06-15T10:02:42.8416415Z       ],
2026-06-15T10:02:42.8416501Z       "stages": {
2026-06-15T10:02:42.8416589Z         "doc": {
2026-06-15T10:02:42.8416688Z           "complete": false,
2026-06-15T10:02:42.8416778Z           "evidence": []
2026-06-15T10:02:42.8416869Z         },
2026-06-15T10:02:42.8416941Z         "impl": {
2026-06-15T10:02:42.8417036Z           "complete": true,
2026-06-15T10:02:42.8417117Z           "evidence": [
2026-06-15T10:02:42.8417194Z             {
2026-06-15T10:02:42.8417322Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T10:02:42.8417417Z               "line": 436
2026-06-15T10:02:42.8417504Z             },
2026-06-15T10:02:42.8417589Z             {
2026-06-15T10:02:42.8417722Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8417809Z               "line": 27
2026-06-15T10:02:42.8417899Z             },
2026-06-15T10:02:42.8417975Z             {
2026-06-15T10:02:42.8418093Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8418189Z               "line": 207
2026-06-15T10:02:42.8418268Z             },
2026-06-15T10:02:42.8418353Z             {
2026-06-15T10:02:42.8418472Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8418573Z               "line": 344
2026-06-15T10:02:42.8418663Z             },
2026-06-15T10:02:42.8418734Z             {
2026-06-15T10:02:42.8418855Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-15T10:02:42.8419030Z               "line": 59
2026-06-15T10:02:42.8419240Z             },
2026-06-15T10:02:42.8419326Z             {
2026-06-15T10:02:42.8419517Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8419693Z               "line": 41
2026-06-15T10:02:42.8419775Z             },
2026-06-15T10:02:42.8419855Z             {
2026-06-15T10:02:42.8419984Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T10:02:42.8420076Z               "line": 27
2026-06-15T10:02:42.8420161Z             },
2026-06-15T10:02:42.8420241Z             {
2026-06-15T10:02:42.8420357Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T10:02:42.8420447Z               "line": 119
2026-06-15T10:02:42.8420532Z             },
2026-06-15T10:02:42.8420609Z             {
2026-06-15T10:02:42.8420729Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T10:02:42.8420805Z               "line": 134
2026-06-15T10:02:42.8420894Z             },
2026-06-15T10:02:42.8420970Z             {
2026-06-15T10:02:42.8421089Z               "path": "crates/spt-store/src/registry.rs",
2026-06-15T10:02:42.8421187Z               "line": 139
2026-06-15T10:02:42.8421267Z             }
2026-06-15T10:02:42.8421354Z           ]
2026-06-15T10:02:42.8421426Z         },
2026-06-15T10:02:42.8421511Z         "int": {
2026-06-15T10:02:42.8421611Z           "complete": true,
2026-06-15T10:02:42.8421698Z           "evidence": [
2026-06-15T10:02:42.8421788Z             {
2026-06-15T10:02:42.8421906Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T10:02:42.8421998Z               "line": 102
2026-06-15T10:02:42.8422084Z             },
2026-06-15T10:02:42.8422169Z             {
2026-06-15T10:02:42.8422283Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8422375Z               "line": 596
2026-06-15T10:02:42.8422470Z             },
2026-06-15T10:02:42.8422545Z             {
2026-06-15T10:02:42.8422666Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8422760Z               "line": 870
2026-06-15T10:02:42.8422841Z             }
2026-06-15T10:02:42.8422933Z           ]
2026-06-15T10:02:42.8423009Z         },
2026-06-15T10:02:42.8423103Z         "unit": {
2026-06-15T10:02:42.8423194Z           "complete": true,
2026-06-15T10:02:42.8423281Z           "evidence": [
2026-06-15T10:02:42.8423367Z             {
2026-06-15T10:02:42.8423503Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8423599Z               "line": 1082
2026-06-15T10:02:42.8423675Z             },
2026-06-15T10:02:42.8423754Z             {
2026-06-15T10:02:42.8423877Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8423974Z               "line": 1414
2026-06-15T10:02:42.8424064Z             },
2026-06-15T10:02:42.8424139Z             {
2026-06-15T10:02:42.8424260Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-15T10:02:42.8424350Z               "line": 84
2026-06-15T10:02:42.8424440Z             },
2026-06-15T10:02:42.8424526Z             {
2026-06-15T10:02:42.8424645Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8424745Z               "line": 780
2026-06-15T10:02:42.8424821Z             },
2026-06-15T10:02:42.8424913Z             {
2026-06-15T10:02:42.8425032Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8425132Z               "line": 791
2026-06-15T10:02:42.8425204Z             },
2026-06-15T10:02:42.8425294Z             {
2026-06-15T10:02:42.8425408Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8425500Z               "line": 806
2026-06-15T10:02:42.8425586Z             },
2026-06-15T10:02:42.8425665Z             {
2026-06-15T10:02:42.8425790Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T10:02:42.8425882Z               "line": 166
2026-06-15T10:02:42.8425970Z             },
2026-06-15T10:02:42.8426061Z             {
2026-06-15T10:02:42.8426172Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T10:02:42.8426342Z               "line": 181
2026-06-15T10:02:42.8426417Z             },
2026-06-15T10:02:42.8426572Z             {
2026-06-15T10:02:42.8426690Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T10:02:42.8426790Z               "line": 214
2026-06-15T10:02:42.8426867Z             }
2026-06-15T10:02:42.8426943Z           ]
2026-06-15T10:02:42.8427023Z         }
2026-06-15T10:02:42.8427096Z       }
2026-06-15T10:02:42.8427191Z     },
2026-06-15T10:02:42.8427272Z     {
2026-06-15T10:02:42.8427367Z       "id": "REQ-INST-8",
2026-06-15T10:02:42.8427515Z       "title": "Remote-control mode distinct from local operation",
2026-06-15T10:02:42.8427615Z       "requiredStages": [
2026-06-15T10:02:42.8427705Z         "impl",
2026-06-15T10:02:42.8427783Z         "unit",
2026-06-15T10:02:42.8427877Z         "int"
2026-06-15T10:02:42.8427953Z       ],
2026-06-15T10:02:42.8428045Z       "stages": {
2026-06-15T10:02:42.8428140Z         "doc": {
2026-06-15T10:02:42.8428234Z           "complete": false,
2026-06-15T10:02:42.8428330Z           "evidence": []
2026-06-15T10:02:42.8428413Z         },
2026-06-15T10:02:42.8428506Z         "impl": {
2026-06-15T10:02:42.8428596Z           "complete": true,
2026-06-15T10:02:42.8428691Z           "evidence": [
2026-06-15T10:02:42.8428777Z             {
2026-06-15T10:02:42.8428899Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T10:02:42.8429090Z               "line": 104
2026-06-15T10:02:42.8429167Z             },
2026-06-15T10:02:42.8429252Z             {
2026-06-15T10:02:42.8429371Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T10:02:42.8429476Z               "line": 299
2026-06-15T10:02:42.8429576Z             },
2026-06-15T10:02:42.8429652Z             {
2026-06-15T10:02:42.8429767Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T10:02:42.8429857Z               "line": 339
2026-06-15T10:02:42.8429938Z             },
2026-06-15T10:02:42.8430025Z             {
2026-06-15T10:02:42.8430139Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T10:02:42.8430233Z               "line": 62
2026-06-15T10:02:42.8430316Z             }
2026-06-15T10:02:42.8430401Z           ]
2026-06-15T10:02:42.8430482Z         },
2026-06-15T10:02:42.8430562Z         "int": {
2026-06-15T10:02:42.8430650Z           "complete": true,
2026-06-15T10:02:42.8430744Z           "evidence": [
2026-06-15T10:02:42.8430830Z             {
2026-06-15T10:02:42.8430946Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T10:02:42.8431040Z               "line": 415
2026-06-15T10:02:42.8431120Z             },
2026-06-15T10:02:42.8431197Z             {
2026-06-15T10:02:42.8431308Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8431397Z               "line": 934
2026-06-15T10:02:42.8431482Z             }
2026-06-15T10:02:42.8431563Z           ]
2026-06-15T10:02:42.8431649Z         },
2026-06-15T10:02:42.8431728Z         "unit": {
2026-06-15T10:02:42.8431823Z           "complete": true,
2026-06-15T10:02:42.8431914Z           "evidence": [
2026-06-15T10:02:42.8431991Z             {
2026-06-15T10:02:42.8432114Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T10:02:42.8432204Z               "line": 358
2026-06-15T10:02:42.8432282Z             },
2026-06-15T10:02:42.8432363Z             {
2026-06-15T10:02:42.8432481Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T10:02:42.8432563Z               "line": 513
2026-06-15T10:02:42.8432634Z             },
2026-06-15T10:02:42.8432715Z             {
2026-06-15T10:02:42.8432830Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T10:02:42.8432921Z               "line": 116
2026-06-15T10:02:42.8433001Z             },
2026-06-15T10:02:42.8433091Z             {
2026-06-15T10:02:42.8433207Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T10:02:42.8433288Z               "line": 160
2026-06-15T10:02:42.8433493Z             }
2026-06-15T10:02:42.8433574Z           ]
2026-06-15T10:02:42.8433659Z         }
2026-06-15T10:02:42.8433740Z       }
2026-06-15T10:02:42.8433823Z     },
2026-06-15T10:02:42.8433987Z     {
2026-06-15T10:02:42.8434087Z       "id": "REQ-INST-9",
2026-06-15T10:02:42.8434281Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-15T10:02:42.8434375Z       "requiredStages": [
2026-06-15T10:02:42.8434462Z         "impl",
2026-06-15T10:02:42.8434539Z         "unit"
2026-06-15T10:02:42.8434620Z       ],
2026-06-15T10:02:42.8434704Z       "stages": {
2026-06-15T10:02:42.8434796Z         "doc": {
2026-06-15T10:02:42.8434891Z           "complete": false,
2026-06-15T10:02:42.8434986Z           "evidence": []
2026-06-15T10:02:42.8435071Z         },
2026-06-15T10:02:42.8435159Z         "impl": {
2026-06-15T10:02:42.8435249Z           "complete": true,
2026-06-15T10:02:42.8435338Z           "evidence": [
2026-06-15T10:02:42.8435421Z             {
2026-06-15T10:02:42.8435553Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8435634Z               "line": 417
2026-06-15T10:02:42.8435725Z             }
2026-06-15T10:02:42.8435803Z           ]
2026-06-15T10:02:42.8435877Z         },
2026-06-15T10:02:42.8435954Z         "int": {
2026-06-15T10:02:42.8436050Z           "complete": false,
2026-06-15T10:02:42.8436136Z           "evidence": []
2026-06-15T10:02:42.8436225Z         },
2026-06-15T10:02:42.8436316Z         "unit": {
2026-06-15T10:02:42.8436403Z           "complete": true,
2026-06-15T10:02:42.8436498Z           "evidence": [
2026-06-15T10:02:42.8439612Z             {
2026-06-15T10:02:42.8439797Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8439897Z               "line": 1321
2026-06-15T10:02:42.8439989Z             },
2026-06-15T10:02:42.8440074Z             {
2026-06-15T10:02:42.8440208Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8440299Z               "line": 1330
2026-06-15T10:02:42.8440398Z             },
2026-06-15T10:02:42.8440479Z             {
2026-06-15T10:02:42.8440609Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8440699Z               "line": 1346
2026-06-15T10:02:42.8440780Z             },
2026-06-15T10:02:42.8440856Z             {
2026-06-15T10:02:42.8440970Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8441066Z               "line": 1358
2026-06-15T10:02:42.8441147Z             },
2026-06-15T10:02:42.8441224Z             {
2026-06-15T10:02:42.8441342Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8441437Z               "line": 1378
2026-06-15T10:02:42.8441515Z             }
2026-06-15T10:02:42.8441605Z           ]
2026-06-15T10:02:42.8441681Z         }
2026-06-15T10:02:42.8441757Z       }
2026-06-15T10:02:42.8441854Z     },
2026-06-15T10:02:42.8441939Z     {
2026-06-15T10:02:42.8442042Z       "id": "REQ-INSTALL-1",
2026-06-15T10:02:42.8442228Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-15T10:02:42.8442331Z       "requiredStages": [
2026-06-15T10:02:42.8442426Z         "doc",
2026-06-15T10:02:42.8442503Z         "impl",
2026-06-15T10:02:42.8442589Z         "int"
2026-06-15T10:02:42.8442665Z       ],
2026-06-15T10:02:42.8442755Z       "stages": {
2026-06-15T10:02:42.8442832Z         "doc": {
2026-06-15T10:02:42.8442932Z           "complete": true,
2026-06-15T10:02:42.8443026Z           "evidence": [
2026-06-15T10:02:42.8443109Z             {
2026-06-15T10:02:42.8443214Z               "path": "CONTEXT.md",
2026-06-15T10:02:42.8443289Z               "line": 692
2026-06-15T10:02:42.8443375Z             }
2026-06-15T10:02:42.8443448Z           ]
2026-06-15T10:02:42.8443537Z         },
2026-06-15T10:02:42.8443628Z         "impl": {
2026-06-15T10:02:42.8443714Z           "complete": true,
2026-06-15T10:02:42.8443805Z           "evidence": [
2026-06-15T10:02:42.8443881Z             {
2026-06-15T10:02:42.8443995Z               "path": "installer/install.ps1",
2026-06-15T10:02:42.8444223Z               "line": 57
2026-06-15T10:02:42.8444314Z             },
2026-06-15T10:02:42.8444392Z             {
2026-06-15T10:02:42.8444590Z               "path": "installer/install.sh",
2026-06-15T10:02:42.8444685Z               "line": 52
2026-06-15T10:02:42.8444761Z             }
2026-06-15T10:02:42.8444841Z           ]
2026-06-15T10:02:42.8444926Z         },
2026-06-15T10:02:42.8445002Z         "int": {
2026-06-15T10:02:42.8445103Z           "complete": true,
2026-06-15T10:02:42.8445189Z           "evidence": [
2026-06-15T10:02:42.8445264Z             {
2026-06-15T10:02:42.8445385Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T10:02:42.8445480Z               "line": 21
2026-06-15T10:02:42.8445560Z             }
2026-06-15T10:02:42.8445641Z           ]
2026-06-15T10:02:42.8445728Z         },
2026-06-15T10:02:42.8445809Z         "unit": {
2026-06-15T10:02:42.8445908Z           "complete": false,
2026-06-15T10:02:42.8446004Z           "evidence": []
2026-06-15T10:02:42.8446085Z         }
2026-06-15T10:02:42.8446162Z       }
2026-06-15T10:02:42.8446242Z     },
2026-06-15T10:02:42.8446324Z     {
2026-06-15T10:02:42.8446428Z       "id": "REQ-INSTALL-2",
2026-06-15T10:02:42.8446571Z       "title": "Marketplace-repackaging-friendly install",
2026-06-15T10:02:42.8446668Z       "requiredStages": [
2026-06-15T10:02:42.8446752Z         "doc"
2026-06-15T10:02:42.8446838Z       ],
2026-06-15T10:02:42.8446930Z       "stages": {
2026-06-15T10:02:42.8447011Z         "doc": {
2026-06-15T10:02:42.8447095Z           "complete": true,
2026-06-15T10:02:42.8447177Z           "evidence": [
2026-06-15T10:02:42.8447264Z             {
2026-06-15T10:02:42.8447364Z               "path": "CONTEXT.md",
2026-06-15T10:02:42.8447447Z               "line": 693
2026-06-15T10:02:42.8447523Z             }
2026-06-15T10:02:42.8447600Z           ]
2026-06-15T10:02:42.8447682Z         },
2026-06-15T10:02:42.8447762Z         "impl": {
2026-06-15T10:02:42.8447857Z           "complete": false,
2026-06-15T10:02:42.8447954Z           "evidence": []
2026-06-15T10:02:42.8448035Z         },
2026-06-15T10:02:42.8448110Z         "int": {
2026-06-15T10:02:42.8448206Z           "complete": false,
2026-06-15T10:02:42.8448302Z           "evidence": []
2026-06-15T10:02:42.8448387Z         },
2026-06-15T10:02:42.8448472Z         "unit": {
2026-06-15T10:02:42.8448564Z           "complete": false,
2026-06-15T10:02:42.8448649Z           "evidence": []
2026-06-15T10:02:42.8448725Z         }
2026-06-15T10:02:42.8448802Z       }
2026-06-15T10:02:42.8448884Z     },
2026-06-15T10:02:42.8449059Z     {
2026-06-15T10:02:42.8449155Z       "id": "REQ-INSTALL-3",
2026-06-15T10:02:42.8449298Z       "title": "Idempotent + interactive-optional first run",
2026-06-15T10:02:42.8449402Z       "requiredStages": [
2026-06-15T10:02:42.8449489Z         "impl",
2026-06-15T10:02:42.8449566Z         "int"
2026-06-15T10:02:42.8449645Z       ],
2026-06-15T10:02:42.8449740Z       "stages": {
2026-06-15T10:02:42.8449821Z         "doc": {
2026-06-15T10:02:42.8449916Z           "complete": false,
2026-06-15T10:02:42.8450005Z           "evidence": []
2026-06-15T10:02:42.8450085Z         },
2026-06-15T10:02:42.8450162Z         "impl": {
2026-06-15T10:02:42.8450258Z           "complete": true,
2026-06-15T10:02:42.8450353Z           "evidence": [
2026-06-15T10:02:42.8450429Z             {
2026-06-15T10:02:42.8450544Z               "path": "installer/install.ps1",
2026-06-15T10:02:42.8450634Z               "line": 100
2026-06-15T10:02:42.8450715Z             },
2026-06-15T10:02:42.8450797Z             {
2026-06-15T10:02:42.8450911Z               "path": "installer/install.ps1",
2026-06-15T10:02:42.8450996Z               "line": 111
2026-06-15T10:02:42.8451078Z             },
2026-06-15T10:02:42.8451164Z             {
2026-06-15T10:02:42.8451254Z               "path": "installer/install.sh",
2026-06-15T10:02:42.8451344Z               "line": 79
2026-06-15T10:02:42.8451421Z             }
2026-06-15T10:02:42.8451512Z           ]
2026-06-15T10:02:42.8451697Z         },
2026-06-15T10:02:42.8451775Z         "int": {
2026-06-15T10:02:42.8451869Z           "complete": true,
2026-06-15T10:02:42.8452051Z           "evidence": [
2026-06-15T10:02:42.8452137Z             {
2026-06-15T10:02:42.8452250Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T10:02:42.8452332Z               "line": 167
2026-06-15T10:02:42.8452419Z             }
2026-06-15T10:02:42.8452489Z           ]
2026-06-15T10:02:42.8452569Z         },
2026-06-15T10:02:42.8452650Z         "unit": {
2026-06-15T10:02:42.8452746Z           "complete": false,
2026-06-15T10:02:42.8452844Z           "evidence": []
2026-06-15T10:02:42.8452929Z         }
2026-06-15T10:02:42.8453015Z       }
2026-06-15T10:02:42.8453092Z     },
2026-06-15T10:02:42.8453182Z     {
2026-06-15T10:02:42.8453276Z       "id": "REQ-INSTALL-4",
2026-06-15T10:02:42.8453901Z       "title": "Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over",
2026-06-15T10:02:42.8453998Z       "requiredStages": [
2026-06-15T10:02:42.8454079Z         "impl",
2026-06-15T10:02:42.8454169Z         "unit"
2026-06-15T10:02:42.8454245Z       ],
2026-06-15T10:02:42.8454337Z       "stages": {
2026-06-15T10:02:42.8454412Z         "doc": {
2026-06-15T10:02:42.8454507Z           "complete": false,
2026-06-15T10:02:42.8454603Z           "evidence": []
2026-06-15T10:02:42.8454680Z         },
2026-06-15T10:02:42.8454774Z         "impl": {
2026-06-15T10:02:42.8454865Z           "complete": true,
2026-06-15T10:02:42.8454957Z           "evidence": [
2026-06-15T10:02:42.8455038Z             {
2026-06-15T10:02:42.8455164Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T10:02:42.8455255Z               "line": 154
2026-06-15T10:02:42.8455326Z             },
2026-06-15T10:02:42.8455406Z             {
2026-06-15T10:02:42.8455519Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8455615Z               "line": 29
2026-06-15T10:02:42.8455692Z             },
2026-06-15T10:02:42.8455782Z             {
2026-06-15T10:02:42.8455901Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8455992Z               "line": 275
2026-06-15T10:02:42.8456078Z             },
2026-06-15T10:02:42.8456158Z             {
2026-06-15T10:02:42.8456274Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8456359Z               "line": 339
2026-06-15T10:02:42.8456439Z             },
2026-06-15T10:02:42.8456531Z             {
2026-06-15T10:02:42.8456641Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8456736Z               "line": 369
2026-06-15T10:02:42.8456812Z             },
2026-06-15T10:02:42.8456889Z             {
2026-06-15T10:02:42.8457002Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8457088Z               "line": 401
2026-06-15T10:02:42.8457180Z             },
2026-06-15T10:02:42.8457252Z             {
2026-06-15T10:02:42.8457360Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8457456Z               "line": 4841
2026-06-15T10:02:42.8457533Z             }
2026-06-15T10:02:42.8457609Z           ]
2026-06-15T10:02:42.8457694Z         },
2026-06-15T10:02:42.8457785Z         "int": {
2026-06-15T10:02:42.8457881Z           "complete": false,
2026-06-15T10:02:42.8457975Z           "evidence": []
2026-06-15T10:02:42.8458055Z         },
2026-06-15T10:02:42.8458141Z         "unit": {
2026-06-15T10:02:42.8458232Z           "complete": true,
2026-06-15T10:02:42.8458327Z           "evidence": [
2026-06-15T10:02:42.8458412Z             {
2026-06-15T10:02:42.8458542Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T10:02:42.8458637Z               "line": 335
2026-06-15T10:02:42.8458718Z             },
2026-06-15T10:02:42.8458800Z             {
2026-06-15T10:02:42.8458914Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8459200Z               "line": 763
2026-06-15T10:02:42.8459281Z             },
2026-06-15T10:02:42.8459371Z             {
2026-06-15T10:02:42.8459614Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8459695Z               "line": 804
2026-06-15T10:02:42.8459778Z             },
2026-06-15T10:02:42.8459858Z             {
2026-06-15T10:02:42.8459977Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8460068Z               "line": 824
2026-06-15T10:02:42.8460154Z             },
2026-06-15T10:02:42.8460229Z             {
2026-06-15T10:02:42.8460333Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8460429Z               "line": 6797
2026-06-15T10:02:42.8460508Z             }
2026-06-15T10:02:42.8460584Z           ]
2026-06-15T10:02:42.8460664Z         }
2026-06-15T10:02:42.8460737Z       }
2026-06-15T10:02:42.8460823Z     },
2026-06-15T10:02:42.8460894Z     {
2026-06-15T10:02:42.8460994Z       "id": "REQ-INSTALL-5",
2026-06-15T10:02:42.8461462Z       "title": "Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration",
2026-06-15T10:02:42.8461566Z       "requiredStages": [
2026-06-15T10:02:42.8461657Z         "impl",
2026-06-15T10:02:42.8461733Z         "int"
2026-06-15T10:02:42.8461814Z       ],
2026-06-15T10:02:42.8461890Z       "stages": {
2026-06-15T10:02:42.8461981Z         "doc": {
2026-06-15T10:02:42.8462076Z           "complete": false,
2026-06-15T10:02:42.8462162Z           "evidence": []
2026-06-15T10:02:42.8462238Z         },
2026-06-15T10:02:42.8462316Z         "impl": {
2026-06-15T10:02:42.8462410Z           "complete": true,
2026-06-15T10:02:42.8462496Z           "evidence": [
2026-06-15T10:02:42.8462572Z             {
2026-06-15T10:02:42.8462683Z               "path": "installer/install.ps1",
2026-06-15T10:02:42.8462767Z               "line": 5
2026-06-15T10:02:42.8462859Z             },
2026-06-15T10:02:42.8462935Z             {
2026-06-15T10:02:42.8463049Z               "path": "installer/install.sh",
2026-06-15T10:02:42.8463139Z               "line": 6
2026-06-15T10:02:42.8463229Z             }
2026-06-15T10:02:42.8463315Z           ]
2026-06-15T10:02:42.8463394Z         },
2026-06-15T10:02:42.8463484Z         "int": {
2026-06-15T10:02:42.8463575Z           "complete": true,
2026-06-15T10:02:42.8463666Z           "evidence": [
2026-06-15T10:02:42.8463747Z             {
2026-06-15T10:02:42.8463866Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-15T10:02:42.8463952Z               "line": 22
2026-06-15T10:02:42.8464024Z             }
2026-06-15T10:02:42.8464114Z           ]
2026-06-15T10:02:42.8464195Z         },
2026-06-15T10:02:42.8464276Z         "unit": {
2026-06-15T10:02:42.8464357Z           "complete": false,
2026-06-15T10:02:42.8464457Z           "evidence": []
2026-06-15T10:02:42.8464533Z         }
2026-06-15T10:02:42.8464620Z       }
2026-06-15T10:02:42.8464695Z     },
2026-06-15T10:02:42.8464776Z     {
2026-06-15T10:02:42.8464873Z       "id": "REQ-INSTALL-6",
2026-06-15T10:02:42.8466161Z       "title": "Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)",
2026-06-15T10:02:42.8466262Z       "requiredStages": [
2026-06-15T10:02:42.8466346Z         "impl",
2026-06-15T10:02:42.8466437Z         "unit"
2026-06-15T10:02:42.8466524Z       ],
2026-06-15T10:02:42.8466605Z       "stages": {
2026-06-15T10:02:42.8466685Z         "doc": {
2026-06-15T10:02:42.8466776Z           "complete": false,
2026-06-15T10:02:42.8466867Z           "evidence": []
2026-06-15T10:02:42.8466943Z         },
2026-06-15T10:02:42.8467111Z         "impl": {
2026-06-15T10:02:42.8467206Z           "complete": true,
2026-06-15T10:02:42.8467282Z           "evidence": [
2026-06-15T10:02:42.8467362Z             {
2026-06-15T10:02:42.8467558Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.8467648Z               "line": 59
2026-06-15T10:02:42.8467730Z             },
2026-06-15T10:02:42.8467807Z             {
2026-06-15T10:02:42.8467920Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.8468011Z               "line": 559
2026-06-15T10:02:42.8468088Z             },
2026-06-15T10:02:42.8468173Z             {
2026-06-15T10:02:42.8468306Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T10:02:42.8468403Z               "line": 191
2026-06-15T10:02:42.8468479Z             },
2026-06-15T10:02:42.8468563Z             {
2026-06-15T10:02:42.8468682Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T10:02:42.8468773Z               "line": 276
2026-06-15T10:02:42.8468868Z             },
2026-06-15T10:02:42.8469079Z             {
2026-06-15T10:02:42.8469216Z               "path": "crates/spt/src/main.rs",
2026-06-15T10:02:42.8469306Z               "line": 42
2026-06-15T10:02:42.8469398Z             },
2026-06-15T10:02:42.8469508Z             {
2026-06-15T10:02:42.8469626Z               "path": "installer/install.sh",
2026-06-15T10:02:42.8469718Z               "line": 104
2026-06-15T10:02:42.8469798Z             }
2026-06-15T10:02:42.8469883Z           ]
2026-06-15T10:02:42.8469960Z         },
2026-06-15T10:02:42.8470052Z         "int": {
2026-06-15T10:02:42.8470141Z           "complete": false,
2026-06-15T10:02:42.8470232Z           "evidence": []
2026-06-15T10:02:42.8470328Z         },
2026-06-15T10:02:42.8470404Z         "unit": {
2026-06-15T10:02:42.8470499Z           "complete": true,
2026-06-15T10:02:42.8470589Z           "evidence": [
2026-06-15T10:02:42.8470662Z             {
2026-06-15T10:02:42.8470779Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-15T10:02:42.8470879Z               "line": 866
2026-06-15T10:02:42.8470965Z             }
2026-06-15T10:02:42.8471041Z           ]
2026-06-15T10:02:42.8471120Z         }
2026-06-15T10:02:42.8471200Z       }
2026-06-15T10:02:42.8471287Z     },
2026-06-15T10:02:42.8471359Z     {
2026-06-15T10:02:42.8471454Z       "id": "REQ-INSTALL-7",
2026-06-15T10:02:42.8472566Z       "title": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)",
2026-06-15T10:02:42.8472665Z       "requiredStages": [
2026-06-15T10:02:42.8472755Z         "impl"
2026-06-15T10:02:42.8472837Z       ],
2026-06-15T10:02:42.8472928Z       "stages": {
2026-06-15T10:02:42.8473013Z         "doc": {
2026-06-15T10:02:42.8473108Z           "complete": false,
2026-06-15T10:02:42.8473210Z           "evidence": []
2026-06-15T10:02:42.8473290Z         },
2026-06-15T10:02:42.8473380Z         "impl": {
2026-06-15T10:02:42.8473467Z           "complete": true,
2026-06-15T10:02:42.8473563Z           "evidence": [
2026-06-15T10:02:42.8473637Z             {
2026-06-15T10:02:42.8473732Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8473827Z               "line": 3480
2026-06-15T10:02:42.8473912Z             },
2026-06-15T10:02:42.8474006Z             {
2026-06-15T10:02:42.8474106Z               "path": "installer/install.ps1",
2026-06-15T10:02:42.8474197Z               "line": 157
2026-06-15T10:02:42.8474274Z             }
2026-06-15T10:02:42.8474349Z           ]
2026-06-15T10:02:42.8474435Z         },
2026-06-15T10:02:42.8474512Z         "int": {
2026-06-15T10:02:42.8474608Z           "complete": false,
2026-06-15T10:02:42.8474697Z           "evidence": []
2026-06-15T10:02:42.8474784Z         },
2026-06-15T10:02:42.8474865Z         "unit": {
2026-06-15T10:02:42.8475060Z           "complete": false,
2026-06-15T10:02:42.8475161Z           "evidence": []
2026-06-15T10:02:42.8475241Z         }
2026-06-15T10:02:42.8475418Z       }
2026-06-15T10:02:42.8475494Z     },
2026-06-15T10:02:42.8475584Z     {
2026-06-15T10:02:42.8475684Z       "id": "REQ-INSTALL-8",
2026-06-15T10:02:42.8476702Z       "title": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)",
2026-06-15T10:02:42.8476807Z       "requiredStages": [
2026-06-15T10:02:42.8476883Z         "impl"
2026-06-15T10:02:42.8476973Z       ],
2026-06-15T10:02:42.8477060Z       "stages": {
2026-06-15T10:02:42.8477136Z         "doc": {
2026-06-15T10:02:42.8477231Z           "complete": false,
2026-06-15T10:02:42.8477312Z           "evidence": []
2026-06-15T10:02:42.8477394Z         },
2026-06-15T10:02:42.8477474Z         "impl": {
2026-06-15T10:02:42.8477569Z           "complete": true,
2026-06-15T10:02:42.8477656Z           "evidence": [
2026-06-15T10:02:42.8477737Z             {
2026-06-15T10:02:42.8477847Z               "path": "installer/install.ps1",
2026-06-15T10:02:42.8477937Z               "line": 184
2026-06-15T10:02:42.8478014Z             },
2026-06-15T10:02:42.8478090Z             {
2026-06-15T10:02:42.8478194Z               "path": "installer/install.sh",
2026-06-15T10:02:42.8478285Z               "line": 121
2026-06-15T10:02:42.8478362Z             }
2026-06-15T10:02:42.8478442Z           ]
2026-06-15T10:02:42.8478518Z         },
2026-06-15T10:02:42.8478595Z         "int": {
2026-06-15T10:02:42.8478687Z           "complete": false,
2026-06-15T10:02:42.8478771Z           "evidence": []
2026-06-15T10:02:42.8478847Z         },
2026-06-15T10:02:42.8479025Z         "unit": {
2026-06-15T10:02:42.8479132Z           "complete": false,
2026-06-15T10:02:42.8479222Z           "evidence": []
2026-06-15T10:02:42.8479314Z         }
2026-06-15T10:02:42.8479424Z       }
2026-06-15T10:02:42.8479509Z     },
2026-06-15T10:02:42.8479581Z     {
2026-06-15T10:02:42.8479676Z       "id": "REQ-KICK-1",
2026-06-15T10:02:42.8482128Z       "title": "Explicit, loud controller displacement: `spt rc kick <target>` / `--take` (Take intent) kicks the incumbent controller and becomes controller; the displaced controller receives a LOUD `Displaced{by}` notice and is FULLY DETACHED (not demoted to a viewer). A default attach to a controlled endpoint is NEVER a silent displace (it is the Control busy-refusal). An old (N-1) rc omits intent → Control, so it can drive a free endpoint but CANNOT `--take` — it can never silently steal, and gets a clean busy-refusal instead. Taking control rides the same access_check(endpoint, origin, Unsolicited) as a normal control attach (if you may drive, you may take — no elevated kick policy). The picker surfaces 'Kick <node> and attach' (Take) only on a controlled (blue ■) endpoint, via the existing attach dispatch (single-bringup-path: intent is a parameter).",
2026-06-15T10:02:42.8482243Z       "requiredStages": [
2026-06-15T10:02:42.8482319Z         "doc",
2026-06-15T10:02:42.8482414Z         "impl",
2026-06-15T10:02:42.8482497Z         "unit",
2026-06-15T10:02:42.8482577Z         "int"
2026-06-15T10:02:42.8482671Z       ],
2026-06-15T10:02:42.8482748Z       "stages": {
2026-06-15T10:02:42.8482840Z         "doc": {
2026-06-15T10:02:42.8482935Z           "complete": true,
2026-06-15T10:02:42.8483024Z           "evidence": [
2026-06-15T10:02:42.8483101Z             {
2026-06-15T10:02:42.8483196Z               "path": "CONTEXT.md",
2026-06-15T10:02:42.8483291Z               "line": 320
2026-06-15T10:02:42.8483382Z             }
2026-06-15T10:02:42.8483460Z           ]
2026-06-15T10:02:42.8483539Z         },
2026-06-15T10:02:42.8483621Z         "impl": {
2026-06-15T10:02:42.8483808Z           "complete": true,
2026-06-15T10:02:42.8483892Z           "evidence": [
2026-06-15T10:02:42.8483969Z             {
2026-06-15T10:02:42.8484188Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T10:02:42.8484287Z               "line": 41
2026-06-15T10:02:42.8484364Z             },
2026-06-15T10:02:42.8484454Z             {
2026-06-15T10:02:42.8484552Z               "path": "crates/spt/src/rc.rs",
2026-06-15T10:02:42.8484642Z               "line": 181
2026-06-15T10:02:42.8484724Z             }
2026-06-15T10:02:42.8484801Z           ]
2026-06-15T10:02:42.8484886Z         },
2026-06-15T10:02:42.8484966Z         "int": {
2026-06-15T10:02:42.8485054Z           "complete": true,
2026-06-15T10:02:42.8485139Z           "evidence": [
2026-06-15T10:02:42.8485234Z             {
2026-06-15T10:02:42.8485354Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T10:02:42.8485449Z               "line": 789
2026-06-15T10:02:42.8485525Z             }
2026-06-15T10:02:42.8485610Z           ]
2026-06-15T10:02:42.8485688Z         },
2026-06-15T10:02:42.8485768Z         "unit": {
2026-06-15T10:02:42.8485858Z           "complete": true,
2026-06-15T10:02:42.8485954Z           "evidence": [
2026-06-15T10:02:42.8486036Z             {
2026-06-15T10:02:42.8486158Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T10:02:42.8486254Z               "line": 205
2026-06-15T10:02:42.8486341Z             }
2026-06-15T10:02:42.8486417Z           ]
2026-06-15T10:02:42.8486497Z         }
2026-06-15T10:02:42.8486574Z       }
2026-06-15T10:02:42.8486656Z     },
2026-06-15T10:02:42.8486741Z     {
2026-06-15T10:02:42.8486835Z       "id": "REQ-MANIFEST-1",
2026-06-15T10:02:42.8487021Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-15T10:02:42.8487119Z       "requiredStages": [
2026-06-15T10:02:42.8487199Z         "doc",
2026-06-15T10:02:42.8487286Z         "impl",
2026-06-15T10:02:42.8487367Z         "unit"
2026-06-15T10:02:42.8487457Z       ],
2026-06-15T10:02:42.8487538Z       "stages": {
2026-06-15T10:02:42.8487620Z         "doc": {
2026-06-15T10:02:42.8487710Z           "complete": true,
2026-06-15T10:02:42.8487805Z           "evidence": [
2026-06-15T10:02:42.8487886Z             {
2026-06-15T10:02:42.8487992Z               "path": "docs/MANIFEST.md",
2026-06-15T10:02:42.8488078Z               "line": 19
2026-06-15T10:02:42.8488157Z             }
2026-06-15T10:02:42.8488236Z           ]
2026-06-15T10:02:42.8488311Z         },
2026-06-15T10:02:42.8488407Z         "impl": {
2026-06-15T10:02:42.8488497Z           "complete": true,
2026-06-15T10:02:42.8488588Z           "evidence": [
2026-06-15T10:02:42.8488678Z             {
2026-06-15T10:02:42.8488792Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.8488889Z               "line": 18
2026-06-15T10:02:42.8489055Z             }
2026-06-15T10:02:42.8489155Z           ]
2026-06-15T10:02:42.8489237Z         },
2026-06-15T10:02:42.8489321Z         "int": {
2026-06-15T10:02:42.8489426Z           "complete": false,
2026-06-15T10:02:42.8489514Z           "evidence": []
2026-06-15T10:02:42.8489608Z         },
2026-06-15T10:02:42.8489697Z         "unit": {
2026-06-15T10:02:42.8489792Z           "complete": true,
2026-06-15T10:02:42.8489874Z           "evidence": [
2026-06-15T10:02:42.8489970Z             {
2026-06-15T10:02:42.8490098Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.8490184Z               "line": 837
2026-06-15T10:02:42.8490265Z             },
2026-06-15T10:02:42.8490345Z             {
2026-06-15T10:02:42.8490470Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.8490565Z               "line": 915
2026-06-15T10:02:42.8490642Z             },
2026-06-15T10:02:42.8490732Z             {
2026-06-15T10:02:42.8490847Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.8490942Z               "line": 927
2026-06-15T10:02:42.8491022Z             },
2026-06-15T10:02:42.8491214Z             {
2026-06-15T10:02:42.8491337Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.8491415Z               "line": 938
2026-06-15T10:02:42.8491619Z             },
2026-06-15T10:02:42.8491700Z             {
2026-06-15T10:02:42.8491816Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.8491909Z               "line": 955
2026-06-15T10:02:42.8491999Z             },
2026-06-15T10:02:42.8492075Z             {
2026-06-15T10:02:42.8492184Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.8492283Z               "line": 969
2026-06-15T10:02:42.8492359Z             },
2026-06-15T10:02:42.8492441Z             {
2026-06-15T10:02:42.8492555Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.8492650Z               "line": 1034
2026-06-15T10:02:42.8492727Z             },
2026-06-15T10:02:42.8492817Z             {
2026-06-15T10:02:42.8492931Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.8493022Z               "line": 1049
2026-06-15T10:02:42.8493108Z             },
2026-06-15T10:02:42.8493194Z             {
2026-06-15T10:02:42.8493313Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.8493409Z               "line": 1160
2026-06-15T10:02:42.8493485Z             },
2026-06-15T10:02:42.8493580Z             {
2026-06-15T10:02:42.8493695Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.8493785Z               "line": 1171
2026-06-15T10:02:42.8493866Z             }
2026-06-15T10:02:42.8493952Z           ]
2026-06-15T10:02:42.8494034Z         }
2026-06-15T10:02:42.8494109Z       }
2026-06-15T10:02:42.8494195Z     },
2026-06-15T10:02:42.8494277Z     {
2026-06-15T10:02:42.8494377Z       "id": "REQ-MANIFEST-2",
2026-06-15T10:02:42.8494885Z       "title": "Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors",
2026-06-15T10:02:42.8494986Z       "requiredStages": [
2026-06-15T10:02:42.8495070Z         "doc",
2026-06-15T10:02:42.8495160Z         "impl",
2026-06-15T10:02:42.8495241Z         "unit"
2026-06-15T10:02:42.8495317Z       ],
2026-06-15T10:02:42.8495413Z       "stages": {
2026-06-15T10:02:42.8495489Z         "doc": {
2026-06-15T10:02:42.8495584Z           "complete": true,
2026-06-15T10:02:42.8495675Z           "evidence": [
2026-06-15T10:02:42.8495751Z             {
2026-06-15T10:02:42.8495850Z               "path": "CONTEXT.md",
2026-06-15T10:02:42.8495943Z               "line": 75
2026-06-15T10:02:42.8496033Z             }
2026-06-15T10:02:42.8496108Z           ]
2026-06-15T10:02:42.8496185Z         },
2026-06-15T10:02:42.8496276Z         "impl": {
2026-06-15T10:02:42.8496371Z           "complete": true,
2026-06-15T10:02:42.8496466Z           "evidence": [
2026-06-15T10:02:42.8496538Z             {
2026-06-15T10:02:42.8496666Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.8496762Z               "line": 62
2026-06-15T10:02:42.8496858Z             },
2026-06-15T10:02:42.8496949Z             {
2026-06-15T10:02:42.8497072Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T10:02:42.8497168Z               "line": 15
2026-06-15T10:02:42.8497254Z             },
2026-06-15T10:02:42.8497343Z             {
2026-06-15T10:02:42.8497457Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T10:02:42.8497552Z               "line": 65
2026-06-15T10:02:42.8497637Z             },
2026-06-15T10:02:42.8497721Z             {
2026-06-15T10:02:42.8497841Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T10:02:42.8497923Z               "line": 83
2026-06-15T10:02:42.8498013Z             },
2026-06-15T10:02:42.8498088Z             {
2026-06-15T10:02:42.8498204Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T10:02:42.8498299Z               "line": 183
2026-06-15T10:02:42.8498384Z             },
2026-06-15T10:02:42.8498471Z             {
2026-06-15T10:02:42.8498666Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8498761Z               "line": 482
2026-06-15T10:02:42.8498904Z             },
2026-06-15T10:02:42.8499066Z             {
2026-06-15T10:02:42.8499191Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8499296Z               "line": 508
2026-06-15T10:02:42.8499371Z             },
2026-06-15T10:02:42.8499453Z             {
2026-06-15T10:02:42.8499572Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8499662Z               "line": 626
2026-06-15T10:02:42.8499745Z             },
2026-06-15T10:02:42.8499825Z             {
2026-06-15T10:02:42.8499939Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8500035Z               "line": 651
2026-06-15T10:02:42.8500112Z             },
2026-06-15T10:02:42.8500201Z             {
2026-06-15T10:02:42.8500324Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8500415Z               "line": 674
2026-06-15T10:02:42.8500502Z             },
2026-06-15T10:02:42.8500581Z             {
2026-06-15T10:02:42.8500711Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8500797Z               "line": 689
2026-06-15T10:02:42.8500882Z             },
2026-06-15T10:02:42.8500967Z             {
2026-06-15T10:02:42.8501069Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8501169Z               "line": 4991
2026-06-15T10:02:42.8501263Z             },
2026-06-15T10:02:42.8501350Z             {
2026-06-15T10:02:42.8501445Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8501540Z               "line": 5005
2026-06-15T10:02:42.8501630Z             },
2026-06-15T10:02:42.8501703Z             {
2026-06-15T10:02:42.8501797Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8501883Z               "line": 5039
2026-06-15T10:02:42.8501970Z             }
2026-06-15T10:02:42.8502047Z           ]
2026-06-15T10:02:42.8502135Z         },
2026-06-15T10:02:42.8502221Z         "int": {
2026-06-15T10:02:42.8502313Z           "complete": false,
2026-06-15T10:02:42.8502413Z           "evidence": []
2026-06-15T10:02:42.8502493Z         },
2026-06-15T10:02:42.8502587Z         "unit": {
2026-06-15T10:02:42.8502679Z           "complete": true,
2026-06-15T10:02:42.8502777Z           "evidence": [
2026-06-15T10:02:42.8502867Z             {
2026-06-15T10:02:42.8502986Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T10:02:42.8503082Z               "line": 920
2026-06-15T10:02:42.8503157Z             },
2026-06-15T10:02:42.8503239Z             {
2026-06-15T10:02:42.8503363Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T10:02:42.8503444Z               "line": 211
2026-06-15T10:02:42.8503539Z             },
2026-06-15T10:02:42.8503617Z             {
2026-06-15T10:02:42.8503735Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T10:02:42.8503820Z               "line": 272
2026-06-15T10:02:42.8503922Z             },
2026-06-15T10:02:42.8504011Z             {
2026-06-15T10:02:42.8504125Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T10:02:42.8504222Z               "line": 313
2026-06-15T10:02:42.8504298Z             },
2026-06-15T10:02:42.8504388Z             {
2026-06-15T10:02:42.8504497Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T10:02:42.8504590Z               "line": 325
2026-06-15T10:02:42.8504669Z             },
2026-06-15T10:02:42.8504746Z             {
2026-06-15T10:02:42.8504861Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T10:02:42.8504951Z               "line": 336
2026-06-15T10:02:42.8505031Z             },
2026-06-15T10:02:42.8505108Z             {
2026-06-15T10:02:42.8505229Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T10:02:42.8505322Z               "line": 345
2026-06-15T10:02:42.8505398Z             },
2026-06-15T10:02:42.8505479Z             {
2026-06-15T10:02:42.8505701Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T10:02:42.8505796Z               "line": 361
2026-06-15T10:02:42.8505977Z             },
2026-06-15T10:02:42.8506067Z             {
2026-06-15T10:02:42.8506183Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T10:02:42.8506259Z               "line": 444
2026-06-15T10:02:42.8506339Z             },
2026-06-15T10:02:42.8506420Z             {
2026-06-15T10:02:42.8506540Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8506631Z               "line": 877
2026-06-15T10:02:42.8506716Z             },
2026-06-15T10:02:42.8506793Z             {
2026-06-15T10:02:42.8506912Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8507002Z               "line": 901
2026-06-15T10:02:42.8507079Z             },
2026-06-15T10:02:42.8507156Z             {
2026-06-15T10:02:42.8507264Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8507364Z               "line": 927
2026-06-15T10:02:42.8507447Z             },
2026-06-15T10:02:42.8510094Z             {
2026-06-15T10:02:42.8510261Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8510362Z               "line": 946
2026-06-15T10:02:42.8510451Z             },
2026-06-15T10:02:42.8510532Z             {
2026-06-15T10:02:42.8510672Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8510766Z               "line": 977
2026-06-15T10:02:42.8510836Z             },
2026-06-15T10:02:42.8510912Z             {
2026-06-15T10:02:42.8511042Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T10:02:42.8511132Z               "line": 309
2026-06-15T10:02:42.8511213Z             },
2026-06-15T10:02:42.8511290Z             {
2026-06-15T10:02:42.8511400Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T10:02:42.8511489Z               "line": 486
2026-06-15T10:02:42.8511576Z             },
2026-06-15T10:02:42.8511662Z             {
2026-06-15T10:02:42.8511771Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8511866Z               "line": 6934
2026-06-15T10:02:42.8511953Z             },
2026-06-15T10:02:42.8512033Z             {
2026-06-15T10:02:42.8512137Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8512230Z               "line": 7818
2026-06-15T10:02:42.8512306Z             }
2026-06-15T10:02:42.8512381Z           ]
2026-06-15T10:02:42.8512462Z         }
2026-06-15T10:02:42.8512545Z       }
2026-06-15T10:02:42.8512625Z     },
2026-06-15T10:02:42.8512705Z     {
2026-06-15T10:02:42.8512806Z       "id": "REQ-MANIFEST-3",
2026-06-15T10:02:42.8513474Z       "title": "Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)",
2026-06-15T10:02:42.8513575Z       "requiredStages": [
2026-06-15T10:02:42.8513666Z         "doc",
2026-06-15T10:02:42.8513761Z         "impl",
2026-06-15T10:02:42.8513842Z         "unit"
2026-06-15T10:02:42.8513923Z       ],
2026-06-15T10:02:42.8514018Z       "stages": {
2026-06-15T10:02:42.8514103Z         "doc": {
2026-06-15T10:02:42.8514201Z           "complete": true,
2026-06-15T10:02:42.8514296Z           "evidence": [
2026-06-15T10:02:42.8514375Z             {
2026-06-15T10:02:42.8514472Z               "path": "CONTEXT.md",
2026-06-15T10:02:42.8514562Z               "line": 81
2026-06-15T10:02:42.8514648Z             }
2026-06-15T10:02:42.8514724Z           ]
2026-06-15T10:02:42.8514820Z         },
2026-06-15T10:02:42.8514910Z         "impl": {
2026-06-15T10:02:42.8515005Z           "complete": true,
2026-06-15T10:02:42.8515087Z           "evidence": [
2026-06-15T10:02:42.8515169Z             {
2026-06-15T10:02:42.8515301Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.8515392Z               "line": 72
2026-06-15T10:02:42.8515488Z             },
2026-06-15T10:02:42.8515572Z             {
2026-06-15T10:02:42.8515836Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T10:02:42.8515934Z               "line": 101
2026-06-15T10:02:42.8516106Z             },
2026-06-15T10:02:42.8516185Z             {
2026-06-15T10:02:42.8516308Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T10:02:42.8516399Z               "line": 132
2026-06-15T10:02:42.8516490Z             },
2026-06-15T10:02:42.8516575Z             {
2026-06-15T10:02:42.8516699Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8516791Z               "line": 532
2026-06-15T10:02:42.8516880Z             },
2026-06-15T10:02:42.8516966Z             {
2026-06-15T10:02:42.8517086Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8517177Z               "line": 588
2026-06-15T10:02:42.8517262Z             },
2026-06-15T10:02:42.8517348Z             {
2026-06-15T10:02:42.8517457Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8517553Z               "line": 5052
2026-06-15T10:02:42.8517639Z             },
2026-06-15T10:02:42.8517725Z             {
2026-06-15T10:02:42.8517834Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8517924Z               "line": 5078
2026-06-15T10:02:42.8518017Z             }
2026-06-15T10:02:42.8518101Z           ]
2026-06-15T10:02:42.8518187Z         },
2026-06-15T10:02:42.8518274Z         "int": {
2026-06-15T10:02:42.8518360Z           "complete": false,
2026-06-15T10:02:42.8518449Z           "evidence": []
2026-06-15T10:02:42.8518529Z         },
2026-06-15T10:02:42.8518624Z         "unit": {
2026-06-15T10:02:42.8518705Z           "complete": true,
2026-06-15T10:02:42.8518799Z           "evidence": [
2026-06-15T10:02:42.8518874Z             {
2026-06-15T10:02:42.8519076Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T10:02:42.8519175Z               "line": 371
2026-06-15T10:02:42.8519247Z             },
2026-06-15T10:02:42.8519324Z             {
2026-06-15T10:02:42.8519481Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T10:02:42.8519571Z               "line": 429
2026-06-15T10:02:42.8519662Z             },
2026-06-15T10:02:42.8519743Z             {
2026-06-15T10:02:42.8519867Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8519958Z               "line": 1001
2026-06-15T10:02:42.8520048Z             },
2026-06-15T10:02:42.8520129Z             {
2026-06-15T10:02:42.8520225Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8520315Z               "line": 6989
2026-06-15T10:02:42.8520392Z             }
2026-06-15T10:02:42.8520482Z           ]
2026-06-15T10:02:42.8520555Z         }
2026-06-15T10:02:42.8520644Z       }
2026-06-15T10:02:42.8520720Z     },
2026-06-15T10:02:42.8520806Z     {
2026-06-15T10:02:42.8520907Z       "id": "REQ-MANIFEST-4",
2026-06-15T10:02:42.8521622Z       "title": "Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace",
2026-06-15T10:02:42.8521725Z       "requiredStages": [
2026-06-15T10:02:42.8521806Z         "doc",
2026-06-15T10:02:42.8521893Z         "impl",
2026-06-15T10:02:42.8521970Z         "unit"
2026-06-15T10:02:42.8522059Z       ],
2026-06-15T10:02:42.8522155Z       "stages": {
2026-06-15T10:02:42.8522236Z         "doc": {
2026-06-15T10:02:42.8522331Z           "complete": true,
2026-06-15T10:02:42.8522417Z           "evidence": [
2026-06-15T10:02:42.8522508Z             {
2026-06-15T10:02:42.8522598Z               "path": "CONTEXT.md",
2026-06-15T10:02:42.8522683Z               "line": 88
2026-06-15T10:02:42.8522775Z             }
2026-06-15T10:02:42.8522856Z           ]
2026-06-15T10:02:42.8522941Z         },
2026-06-15T10:02:42.8523017Z         "impl": {
2026-06-15T10:02:42.8523119Z           "complete": true,
2026-06-15T10:02:42.8523209Z           "evidence": [
2026-06-15T10:02:42.8523304Z             {
2026-06-15T10:02:42.8523547Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.8523632Z               "line": 80
2026-06-15T10:02:42.8523808Z             },
2026-06-15T10:02:42.8523883Z             {
2026-06-15T10:02:42.8524001Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.8524092Z               "line": 152
2026-06-15T10:02:42.8524169Z             },
2026-06-15T10:02:42.8524263Z             {
2026-06-15T10:02:42.8524373Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8524464Z               "line": 83
2026-06-15T10:02:42.8524541Z             },
2026-06-15T10:02:42.8524621Z             {
2026-06-15T10:02:42.8524737Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.8524826Z               "line": 505
2026-06-15T10:02:42.8524911Z             },
2026-06-15T10:02:42.8524988Z             {
2026-06-15T10:02:42.8525113Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.8525203Z               "line": 530
2026-06-15T10:02:42.8525293Z             }
2026-06-15T10:02:42.8525371Z           ]
2026-06-15T10:02:42.8525451Z         },
2026-06-15T10:02:42.8525546Z         "int": {
2026-06-15T10:02:42.8525642Z           "complete": false,
2026-06-15T10:02:42.8525743Z           "evidence": []
2026-06-15T10:02:42.8525822Z         },
2026-06-15T10:02:42.8525904Z         "unit": {
2026-06-15T10:02:42.8526000Z           "complete": true,
2026-06-15T10:02:42.8526095Z           "evidence": [
2026-06-15T10:02:42.8526180Z             {
2026-06-15T10:02:42.8526301Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.8526382Z               "line": 984
2026-06-15T10:02:42.8526461Z             },
2026-06-15T10:02:42.8526537Z             {
2026-06-15T10:02:42.8526656Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.8526750Z               "line": 1017
2026-06-15T10:02:42.8526844Z             },
2026-06-15T10:02:42.8526921Z             {
2026-06-15T10:02:42.8527041Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.8527126Z               "line": 862
2026-06-15T10:02:42.8527221Z             }
2026-06-15T10:02:42.8527313Z           ]
2026-06-15T10:02:42.8527389Z         }
2026-06-15T10:02:42.8527464Z       }
2026-06-15T10:02:42.8527545Z     },
2026-06-15T10:02:42.8527628Z     {
2026-06-15T10:02:42.8527708Z       "id": "REQ-MANIFEST-5",
2026-06-15T10:02:42.8530679Z       "title": "File-backed adapter [strings] (M12-W3-T3.1): a [strings] dot-path value MAY be an inline-table FILE POINTER `key = { file = \"rel/path\" }` resolved to the file's contents at get-string time, keeping large bodies (skill-instructions, hint text) out of the manifest. A value-position table with a `file` key IS the pointer form (reserved — cannot double as data). Per-adapter aux storage `adapters/<adapter>/strings/`; pointers resolve relative to it with CONTAINMENT (reject `..`/absolute escaping the dir). UPDATE-SAFETY: a LOCAL profile's file-pointers resolve relative to the user-owned local-profile dir (NOT adapter-shipped strings/, which adapter updates overwrite), or the local profile inlines. Validate-at-register (fail-fast on a bad/escaping/missing pointer) + LAZY read at get-string (live file edits reflect, no re-register) + skip-diagnostics on missing-at-read (no hard-crash, mirrors [digest]). Rides the same leaf-replace profile overlay as the rest of [strings].",
2026-06-15T10:02:42.8530795Z       "requiredStages": [
2026-06-15T10:02:42.8530880Z         "doc",
2026-06-15T10:02:42.8530961Z         "impl",
2026-06-15T10:02:42.8531061Z         "unit"
2026-06-15T10:02:42.8531148Z       ],
2026-06-15T10:02:42.8531242Z       "stages": {
2026-06-15T10:02:42.8531323Z         "doc": {
2026-06-15T10:02:42.8531420Z           "complete": true,
2026-06-15T10:02:42.8531515Z           "evidence": [
2026-06-15T10:02:42.8531595Z             {
2026-06-15T10:02:42.8531691Z               "path": "CONTEXT.md",
2026-06-15T10:02:42.8531782Z               "line": 83
2026-06-15T10:02:42.8531975Z             }
2026-06-15T10:02:42.8532061Z           ]
2026-06-15T10:02:42.8532144Z         },
2026-06-15T10:02:42.8532224Z         "impl": {
2026-06-15T10:02:42.8532401Z           "complete": true,
2026-06-15T10:02:42.8532496Z           "evidence": [
2026-06-15T10:02:42.8532581Z             {
2026-06-15T10:02:42.8532701Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T10:02:42.8532796Z               "line": 120
2026-06-15T10:02:42.8532877Z             }
2026-06-15T10:02:42.8532967Z           ]
2026-06-15T10:02:42.8533044Z         },
2026-06-15T10:02:42.8533125Z         "int": {
2026-06-15T10:02:42.8533225Z           "complete": false,
2026-06-15T10:02:42.8533325Z           "evidence": []
2026-06-15T10:02:42.8533398Z         },
2026-06-15T10:02:42.8533487Z         "unit": {
2026-06-15T10:02:42.8533582Z           "complete": true,
2026-06-15T10:02:42.8533665Z           "evidence": [
2026-06-15T10:02:42.8533755Z             {
2026-06-15T10:02:42.8533878Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-15T10:02:42.8533964Z               "line": 404
2026-06-15T10:02:42.8534042Z             },
2026-06-15T10:02:42.8534126Z             {
2026-06-15T10:02:42.8534253Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8534354Z               "line": 1074
2026-06-15T10:02:42.8534443Z             },
2026-06-15T10:02:42.8534518Z             {
2026-06-15T10:02:42.8534642Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8534734Z               "line": 1103
2026-06-15T10:02:42.8534814Z             },
2026-06-15T10:02:42.8534904Z             {
2026-06-15T10:02:42.8535024Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8535119Z               "line": 1143
2026-06-15T10:02:42.8535195Z             },
2026-06-15T10:02:42.8535277Z             {
2026-06-15T10:02:42.8535386Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8535481Z               "line": 1158
2026-06-15T10:02:42.8535578Z             }
2026-06-15T10:02:42.8535659Z           ]
2026-06-15T10:02:42.8535745Z         }
2026-06-15T10:02:42.8535824Z       }
2026-06-15T10:02:42.8535907Z     },
2026-06-15T10:02:42.8535988Z     {
2026-06-15T10:02:42.8536083Z       "id": "REQ-MANIFEST-6",
2026-06-15T10:02:42.8538173Z       "title": "Cross-adapter fallback target addressing (M12-W3-T3.2): a cross-adapter fallback target is addressed as `<adapter>:<profile>` (not just a bare adapter_name), resolved through the one composite-addressing resolver (registry::resolve_option) at every adapter-option read site so a fallback may select a shipped/local profile (e.g. a `ccs` profile). CONTEXT.md §cross-adapter-fallback reconciled (\"ccs is a profile; cross-adapter fallback may target <adapter>:<profile>\"). Contract-only this milestone: the node-wide fallback SETTING + its rate-limit invocation are deferred to the consuming milestone (the runtime path does not exist yet); this REQ guarantees the ADDRESSING resolves.",
2026-06-15T10:02:42.8538287Z       "requiredStages": [
2026-06-15T10:02:42.8538372Z         "doc",
2026-06-15T10:02:42.8538463Z         "unit"
2026-06-15T10:02:42.8538545Z       ],
2026-06-15T10:02:42.8538640Z       "stages": {
2026-06-15T10:02:42.8538716Z         "doc": {
2026-06-15T10:02:42.8538817Z           "complete": true,
2026-06-15T10:02:42.8538911Z           "evidence": [
2026-06-15T10:02:42.8539064Z             {
2026-06-15T10:02:42.8539165Z               "path": "CONTEXT.md",
2026-06-15T10:02:42.8539254Z               "line": 139
2026-06-15T10:02:42.8539346Z             }
2026-06-15T10:02:42.8539432Z           ]
2026-06-15T10:02:42.8539518Z         },
2026-06-15T10:02:42.8539598Z         "impl": {
2026-06-15T10:02:42.8539677Z           "complete": false,
2026-06-15T10:02:42.8539774Z           "evidence": []
2026-06-15T10:02:42.8539853Z         },
2026-06-15T10:02:42.8539943Z         "int": {
2026-06-15T10:02:42.8540033Z           "complete": false,
2026-06-15T10:02:42.8540134Z           "evidence": []
2026-06-15T10:02:42.8540323Z         },
2026-06-15T10:02:42.8540401Z         "unit": {
2026-06-15T10:02:42.8540496Z           "complete": true,
2026-06-15T10:02:42.8540672Z           "evidence": [
2026-06-15T10:02:42.8540759Z             {
2026-06-15T10:02:42.8540868Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-15T10:02:42.8540967Z               "line": 1180
2026-06-15T10:02:42.8541055Z             }
2026-06-15T10:02:42.8541140Z           ]
2026-06-15T10:02:42.8541216Z         }
2026-06-15T10:02:42.8541302Z       }
2026-06-15T10:02:42.8541379Z     },
2026-06-15T10:02:42.8541459Z     {
2026-06-15T10:02:42.8541559Z       "id": "REQ-MANIFEST-7",
2026-06-15T10:02:42.8544549Z       "title": "Adapter-declared shortcut basename (M12-W2 follow-on): an optional `[adapter] shortcut_basename` manifest field names the basename the `spt endpoint run` picker bakes into the generated `<basename>-<id>` launcher shortcut (REQ-RUN-SHORTCUT). Absent ⇒ the harness-agnostic default `spt` (→ `spt-<id>`); an adapter sets it to brand its shortcuts (claude-spt → `cc` → `cc-<id>`), so the Claude-Code-ness lives in the PUBLISHED adapter manifest, never hardcoded in spt-core. The picker reads it from the RESOLVED manifest of the selected adapter (registry::resolve_option), falling back to `spt` when absent/empty/unresolvable. Additive + N-1-safe (serde-default Option, omitted from serialization when absent; old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). Documented in docs/MANIFEST.md `[adapter]` section + the claude-spt worked example — the adapter-author contract perri builds spt-claude-code against.",
2026-06-15T10:02:42.8544662Z       "requiredStages": [
2026-06-15T10:02:42.8544742Z         "doc",
2026-06-15T10:02:42.8544837Z         "impl",
2026-06-15T10:02:42.8544928Z         "unit"
2026-06-15T10:02:42.8545003Z       ],
2026-06-15T10:02:42.8545088Z       "stages": {
2026-06-15T10:02:42.8545164Z         "doc": {
2026-06-15T10:02:42.8545260Z           "complete": true,
2026-06-15T10:02:42.8545351Z           "evidence": [
2026-06-15T10:02:42.8545441Z             {
2026-06-15T10:02:42.8545551Z               "path": "docs/MANIFEST.md",
2026-06-15T10:02:42.8545637Z               "line": 34
2026-06-15T10:02:42.8545722Z             }
2026-06-15T10:02:42.8545808Z           ]
2026-06-15T10:02:42.8545895Z         },
2026-06-15T10:02:42.8545985Z         "impl": {
2026-06-15T10:02:42.8546079Z           "complete": true,
2026-06-15T10:02:42.8546166Z           "evidence": [
2026-06-15T10:02:42.8546252Z             {
2026-06-15T10:02:42.8546370Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T10:02:42.8546457Z               "line": 54
2026-06-15T10:02:42.8546539Z             }
2026-06-15T10:02:42.8546619Z           ]
2026-06-15T10:02:42.8546709Z         },
2026-06-15T10:02:42.8546801Z         "int": {
2026-06-15T10:02:42.8546900Z           "complete": false,
2026-06-15T10:02:42.8546990Z           "evidence": []
2026-06-15T10:02:42.8547072Z         },
2026-06-15T10:02:42.8547163Z         "unit": {
2026-06-15T10:02:42.8547252Z           "complete": true,
2026-06-15T10:02:42.8547348Z           "evidence": [
2026-06-15T10:02:42.8547430Z             {
2026-06-15T10:02:42.8547553Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.8547653Z               "line": 1177
2026-06-15T10:02:42.8547729Z             }
2026-06-15T10:02:42.8547805Z           ]
2026-06-15T10:02:42.8547884Z         }
2026-06-15T10:02:42.8547964Z       }
2026-06-15T10:02:42.8548041Z     },
2026-06-15T10:02:42.8548123Z     {
2026-06-15T10:02:42.8548222Z       "id": "REQ-MESH-1",
2026-06-15T10:02:42.8550358Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-15T10:02:42.8550661Z       "requiredStages": [
2026-06-15T10:02:42.8550752Z         "impl",
2026-06-15T10:02:42.8550827Z         "unit",
2026-06-15T10:02:42.8550918Z         "int"
2026-06-15T10:02:42.8550990Z       ],
2026-06-15T10:02:42.8551080Z       "stages": {
2026-06-15T10:02:42.8551175Z         "doc": {
2026-06-15T10:02:42.8551266Z           "complete": false,
2026-06-15T10:02:42.8551357Z           "evidence": []
2026-06-15T10:02:42.8551442Z         },
2026-06-15T10:02:42.8551532Z         "impl": {
2026-06-15T10:02:42.8551629Z           "complete": true,
2026-06-15T10:02:42.8551724Z           "evidence": [
2026-06-15T10:02:42.8551804Z             {
2026-06-15T10:02:42.8551935Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.8552033Z               "line": 771
2026-06-15T10:02:42.8552114Z             },
2026-06-15T10:02:42.8552206Z             {
2026-06-15T10:02:42.8552329Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8552425Z               "line": 38
2026-06-15T10:02:42.8552516Z             },
2026-06-15T10:02:42.8552592Z             {
2026-06-15T10:02:42.8552710Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8552801Z               "line": 161
2026-06-15T10:02:42.8552879Z             },
2026-06-15T10:02:42.8552959Z             {
2026-06-15T10:02:42.8553072Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8553167Z               "line": 206
2026-06-15T10:02:42.8553244Z             },
2026-06-15T10:02:42.8553321Z             {
2026-06-15T10:02:42.8553438Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8553535Z               "line": 57
2026-06-15T10:02:42.8553611Z             },
2026-06-15T10:02:42.8553692Z             {
2026-06-15T10:02:42.8553821Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T10:02:42.8553907Z               "line": 24
2026-06-15T10:02:42.8553997Z             },
2026-06-15T10:02:42.8554077Z             {
2026-06-15T10:02:42.8554212Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T10:02:42.8554292Z               "line": 142
2026-06-15T10:02:42.8554378Z             },
2026-06-15T10:02:42.8554465Z             {
2026-06-15T10:02:42.8554588Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T10:02:42.8554683Z               "line": 162
2026-06-15T10:02:42.8554760Z             }
2026-06-15T10:02:42.8554851Z           ]
2026-06-15T10:02:42.8554922Z         },
2026-06-15T10:02:42.8555003Z         "int": {
2026-06-15T10:02:42.8555099Z           "complete": true,
2026-06-15T10:02:42.8555180Z           "evidence": [
2026-06-15T10:02:42.8555274Z             {
2026-06-15T10:02:42.8555407Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T10:02:42.8555507Z               "line": 67
2026-06-15T10:02:42.8555587Z             },
2026-06-15T10:02:42.8555667Z             {
2026-06-15T10:02:42.8555796Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T10:02:42.8555874Z               "line": 93
2026-06-15T10:02:42.8555967Z             },
2026-06-15T10:02:42.8556039Z             {
2026-06-15T10:02:42.8556163Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T10:02:42.8556254Z               "line": 117
2026-06-15T10:02:42.8556334Z             },
2026-06-15T10:02:42.8556421Z             {
2026-06-15T10:02:42.8556540Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-15T10:02:42.8556630Z               "line": 134
2026-06-15T10:02:42.8556708Z             }
2026-06-15T10:02:42.8556788Z           ]
2026-06-15T10:02:42.8556865Z         },
2026-06-15T10:02:42.8557046Z         "unit": {
2026-06-15T10:02:42.8557141Z           "complete": true,
2026-06-15T10:02:42.8557236Z           "evidence": [
2026-06-15T10:02:42.8557390Z             {
2026-06-15T10:02:42.8557507Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8557603Z               "line": 427
2026-06-15T10:02:42.8557700Z             },
2026-06-15T10:02:42.8557784Z             {
2026-06-15T10:02:42.8557913Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T10:02:42.8557995Z               "line": 376
2026-06-15T10:02:42.8558081Z             },
2026-06-15T10:02:42.8558165Z             {
2026-06-15T10:02:42.8558303Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T10:02:42.8558403Z               "line": 412
2026-06-15T10:02:42.8558477Z             },
2026-06-15T10:02:42.8558567Z             {
2026-06-15T10:02:42.8558688Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T10:02:42.8558787Z               "line": 427
2026-06-15T10:02:42.8558863Z             },
2026-06-15T10:02:42.8559021Z             {
2026-06-15T10:02:42.8559149Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T10:02:42.8559240Z               "line": 438
2026-06-15T10:02:42.8559322Z             },
2026-06-15T10:02:42.8559412Z             {
2026-06-15T10:02:42.8559540Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T10:02:42.8559632Z               "line": 449
2026-06-15T10:02:42.8559712Z             },
2026-06-15T10:02:42.8559798Z             {
2026-06-15T10:02:42.8559923Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T10:02:42.8560017Z               "line": 460
2026-06-15T10:02:42.8560093Z             },
2026-06-15T10:02:42.8560174Z             {
2026-06-15T10:02:42.8560304Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T10:02:42.8560393Z               "line": 496
2026-06-15T10:02:42.8560470Z             },
2026-06-15T10:02:42.8560557Z             {
2026-06-15T10:02:42.8560684Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T10:02:42.8560774Z               "line": 519
2026-06-15T10:02:42.8560864Z             },
2026-06-15T10:02:42.8560950Z             {
2026-06-15T10:02:42.8561068Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T10:02:42.8561163Z               "line": 546
2026-06-15T10:02:42.8561240Z             }
2026-06-15T10:02:42.8561326Z           ]
2026-06-15T10:02:42.8561401Z         }
2026-06-15T10:02:42.8561492Z       }
2026-06-15T10:02:42.8561569Z     },
2026-06-15T10:02:42.8561650Z     {
2026-06-15T10:02:42.8561749Z       "id": "REQ-MESH-2",
2026-06-15T10:02:42.8564290Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-15T10:02:42.8564396Z       "requiredStages": [
2026-06-15T10:02:42.8564491Z         "impl",
2026-06-15T10:02:42.8564567Z         "unit",
2026-06-15T10:02:42.8564657Z         "int"
2026-06-15T10:02:42.8564734Z       ],
2026-06-15T10:02:42.8564829Z       "stages": {
2026-06-15T10:02:42.8564914Z         "doc": {
2026-06-15T10:02:42.8565010Z           "complete": false,
2026-06-15T10:02:42.8565106Z           "evidence": []
2026-06-15T10:02:42.8565296Z         },
2026-06-15T10:02:42.8565383Z         "impl": {
2026-06-15T10:02:42.8565473Z           "complete": true,
2026-06-15T10:02:42.8565654Z           "evidence": [
2026-06-15T10:02:42.8565745Z             {
2026-06-15T10:02:42.8565862Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.8565957Z               "line": 660
2026-06-15T10:02:42.8566048Z             },
2026-06-15T10:02:42.8566142Z             {
2026-06-15T10:02:42.8566251Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.8566342Z               "line": 118
2026-06-15T10:02:42.8566424Z             },
2026-06-15T10:02:42.8566499Z             {
2026-06-15T10:02:42.8566613Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.8566700Z               "line": 347
2026-06-15T10:02:42.8566790Z             },
2026-06-15T10:02:42.8566870Z             {
2026-06-15T10:02:42.8566986Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.8567086Z               "line": 389
2026-06-15T10:02:42.8567161Z             },
2026-06-15T10:02:42.8567248Z             {
2026-06-15T10:02:42.8567372Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.8567467Z               "line": 403
2026-06-15T10:02:42.8567543Z             },
2026-06-15T10:02:42.8567625Z             {
2026-06-15T10:02:42.8567744Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.8567834Z               "line": 492
2026-06-15T10:02:42.8567921Z             },
2026-06-15T10:02:42.8568002Z             {
2026-06-15T10:02:42.8568120Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.8568217Z               "line": 507
2026-06-15T10:02:42.8568303Z             },
2026-06-15T10:02:42.8568386Z             {
2026-06-15T10:02:42.8568502Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.8568598Z               "line": 534
2026-06-15T10:02:42.8568678Z             },
2026-06-15T10:02:42.8568768Z             {
2026-06-15T10:02:42.8568901Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8569066Z               "line": 207
2026-06-15T10:02:42.8569161Z             },
2026-06-15T10:02:42.8569248Z             {
2026-06-15T10:02:42.8569361Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8569451Z               "line": 755
2026-06-15T10:02:42.8569534Z             },
2026-06-15T10:02:42.8569614Z             {
2026-06-15T10:02:42.8569733Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8569824Z               "line": 816
2026-06-15T10:02:42.8569905Z             },
2026-06-15T10:02:42.8569986Z             {
2026-06-15T10:02:42.8570105Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8570206Z               "line": 869
2026-06-15T10:02:42.8570291Z             },
2026-06-15T10:02:42.8570372Z             {
2026-06-15T10:02:42.8570497Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8570591Z               "line": 891
2026-06-15T10:02:42.8570682Z             },
2026-06-15T10:02:42.8570764Z             {
2026-06-15T10:02:42.8570869Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8570963Z               "line": 122
2026-06-15T10:02:42.8571040Z             },
2026-06-15T10:02:42.8571127Z             {
2026-06-15T10:02:42.8571244Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T10:02:42.8571339Z               "line": 44
2026-06-15T10:02:42.8571425Z             },
2026-06-15T10:02:42.8571515Z             {
2026-06-15T10:02:42.8571628Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T10:02:42.8571708Z               "line": 184
2026-06-15T10:02:42.8571785Z             },
2026-06-15T10:02:42.8571872Z             {
2026-06-15T10:02:42.8571985Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T10:02:42.8572086Z               "line": 211
2026-06-15T10:02:42.8572406Z             },
2026-06-15T10:02:42.8572496Z             {
2026-06-15T10:02:42.8572610Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T10:02:42.8572810Z               "line": 251
2026-06-15T10:02:42.8572896Z             },
2026-06-15T10:02:42.8572972Z             {
2026-06-15T10:02:42.8573087Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T10:02:42.8573178Z               "line": 275
2026-06-15T10:02:42.8573263Z             },
2026-06-15T10:02:42.8573340Z             {
2026-06-15T10:02:42.8573454Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T10:02:42.8573545Z               "line": 289
2026-06-15T10:02:42.8573636Z             },
2026-06-15T10:02:42.8573731Z             {
2026-06-15T10:02:42.8573840Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T10:02:42.8573936Z               "line": 300
2026-06-15T10:02:42.8574013Z             },
2026-06-15T10:02:42.8574102Z             {
2026-06-15T10:02:42.8574211Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T10:02:42.8574311Z               "line": 313
2026-06-15T10:02:42.8574398Z             }
2026-06-15T10:02:42.8574488Z           ]
2026-06-15T10:02:42.8574573Z         },
2026-06-15T10:02:42.8574650Z         "int": {
2026-06-15T10:02:42.8574745Z           "complete": true,
2026-06-15T10:02:42.8574836Z           "evidence": [
2026-06-15T10:02:42.8574926Z             {
2026-06-15T10:02:42.8575056Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-15T10:02:42.8575150Z               "line": 116
2026-06-15T10:02:42.8575236Z             },
2026-06-15T10:02:42.8575313Z             {
2026-06-15T10:02:42.8575437Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-15T10:02:42.8575517Z               "line": 181
2026-06-15T10:02:42.8575609Z             }
2026-06-15T10:02:42.8575699Z           ]
2026-06-15T10:02:42.8575785Z         },
2026-06-15T10:02:42.8575876Z         "unit": {
2026-06-15T10:02:42.8575967Z           "complete": true,
2026-06-15T10:02:42.8576065Z           "evidence": [
2026-06-15T10:02:42.8576142Z             {
2026-06-15T10:02:42.8576262Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8576361Z               "line": 999
2026-06-15T10:02:42.8576446Z             },
2026-06-15T10:02:42.8576542Z             {
2026-06-15T10:02:42.8576660Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8576758Z               "line": 1016
2026-06-15T10:02:42.8576834Z             },
2026-06-15T10:02:42.8576916Z             {
2026-06-15T10:02:42.8577036Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8577125Z               "line": 1024
2026-06-15T10:02:42.8577207Z             },
2026-06-15T10:02:42.8577288Z             {
2026-06-15T10:02:42.8577416Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8577513Z               "line": 1048
2026-06-15T10:02:42.8577599Z             },
2026-06-15T10:02:42.8577684Z             {
2026-06-15T10:02:42.8577818Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T10:02:42.8577918Z               "line": 1499
2026-06-15T10:02:42.8578008Z             },
2026-06-15T10:02:42.8578094Z             {
2026-06-15T10:02:42.8578214Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T10:02:42.8578304Z               "line": 347
2026-06-15T10:02:42.8578389Z             },
2026-06-15T10:02:42.8578462Z             {
2026-06-15T10:02:42.8578576Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T10:02:42.8578666Z               "line": 370
2026-06-15T10:02:42.8578752Z             },
2026-06-15T10:02:42.8578839Z             {
2026-06-15T10:02:42.8579038Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T10:02:42.8579134Z               "line": 407
2026-06-15T10:02:42.8579210Z             },
2026-06-15T10:02:42.8579294Z             {
2026-06-15T10:02:42.8579423Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T10:02:42.8579640Z               "line": 431
2026-06-15T10:02:42.8579721Z             },
2026-06-15T10:02:42.8579808Z             {
2026-06-15T10:02:42.8579921Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T10:02:42.8580132Z               "line": 483
2026-06-15T10:02:42.8580213Z             },
2026-06-15T10:02:42.8580298Z             {
2026-06-15T10:02:42.8580413Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T10:02:42.8580508Z               "line": 499
2026-06-15T10:02:42.8580588Z             },
2026-06-15T10:02:42.8580680Z             {
2026-06-15T10:02:42.8580790Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T10:02:42.8580889Z               "line": 514
2026-06-15T10:02:42.8580975Z             },
2026-06-15T10:02:42.8581057Z             {
2026-06-15T10:02:42.8581170Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T10:02:42.8581247Z               "line": 531
2026-06-15T10:02:42.8581339Z             }
2026-06-15T10:02:42.8581415Z           ]
2026-06-15T10:02:42.8581509Z         }
2026-06-15T10:02:42.8581586Z       }
2026-06-15T10:02:42.8581677Z     },
2026-06-15T10:02:42.8581762Z     {
2026-06-15T10:02:42.8581861Z       "id": "REQ-MESH-3",
2026-06-15T10:02:42.8583571Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-15T10:02:42.8583666Z       "requiredStages": [
2026-06-15T10:02:42.8583752Z         "impl",
2026-06-15T10:02:42.8583837Z         "unit",
2026-06-15T10:02:42.8583915Z         "int"
2026-06-15T10:02:42.8584009Z       ],
2026-06-15T10:02:42.8584095Z       "stages": {
2026-06-15T10:02:42.8584181Z         "doc": {
2026-06-15T10:02:42.8584282Z           "complete": false,
2026-06-15T10:02:42.8584376Z           "evidence": []
2026-06-15T10:02:42.8584467Z         },
2026-06-15T10:02:42.8584554Z         "impl": {
2026-06-15T10:02:42.8584653Z           "complete": true,
2026-06-15T10:02:42.8584743Z           "evidence": [
2026-06-15T10:02:42.8584833Z             {
2026-06-15T10:02:42.8584963Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.8585053Z               "line": 641
2026-06-15T10:02:42.8585138Z             }
2026-06-15T10:02:42.8585220Z           ]
2026-06-15T10:02:42.8585301Z         },
2026-06-15T10:02:42.8585376Z         "int": {
2026-06-15T10:02:42.8585477Z           "complete": true,
2026-06-15T10:02:42.8585573Z           "evidence": [
2026-06-15T10:02:42.8585654Z             {
2026-06-15T10:02:42.8585767Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-15T10:02:42.8585859Z               "line": 373
2026-06-15T10:02:42.8585949Z             },
2026-06-15T10:02:42.8586030Z             {
2026-06-15T10:02:42.8586145Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-15T10:02:42.8586236Z               "line": 436
2026-06-15T10:02:42.8586311Z             }
2026-06-15T10:02:42.8586401Z           ]
2026-06-15T10:02:42.8586475Z         },
2026-06-15T10:02:42.8586565Z         "unit": {
2026-06-15T10:02:42.8586659Z           "complete": true,
2026-06-15T10:02:42.8586755Z           "evidence": [
2026-06-15T10:02:42.8586832Z             {
2026-06-15T10:02:42.8586945Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.8587040Z               "line": 910
2026-06-15T10:02:42.8587116Z             }
2026-06-15T10:02:42.8587201Z           ]
2026-06-15T10:02:42.8589845Z         }
2026-06-15T10:02:42.8589964Z       }
2026-06-15T10:02:42.8590055Z     },
2026-06-15T10:02:42.8590139Z     {
2026-06-15T10:02:42.8590238Z       "id": "REQ-MESH-4",
2026-06-15T10:02:42.8592602Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-15T10:02:42.8592800Z       "requiredStages": [
2026-06-15T10:02:42.8592896Z         "impl",
2026-06-15T10:02:42.8592973Z         "unit",
2026-06-15T10:02:42.8593062Z         "int"
2026-06-15T10:02:42.8593138Z       ],
2026-06-15T10:02:42.8593235Z       "stages": {
2026-06-15T10:02:42.8593325Z         "doc": {
2026-06-15T10:02:42.8593420Z           "complete": false,
2026-06-15T10:02:42.8593516Z           "evidence": []
2026-06-15T10:02:42.8593601Z         },
2026-06-15T10:02:42.8593682Z         "impl": {
2026-06-15T10:02:42.8593768Z           "complete": true,
2026-06-15T10:02:42.8593865Z           "evidence": [
2026-06-15T10:02:42.8593949Z             {
2026-06-15T10:02:42.8594087Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T10:02:42.8594184Z               "line": 33
2026-06-15T10:02:42.8594269Z             },
2026-06-15T10:02:42.8594345Z             {
2026-06-15T10:02:42.8594480Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8594574Z               "line": 68
2026-06-15T10:02:42.8594665Z             },
2026-06-15T10:02:42.8594736Z             {
2026-06-15T10:02:42.8594856Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8594950Z               "line": 111
2026-06-15T10:02:42.8595037Z             },
2026-06-15T10:02:42.8595129Z             {
2026-06-15T10:02:42.8595250Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8595349Z               "line": 462
2026-06-15T10:02:42.8595426Z             },
2026-06-15T10:02:42.8595513Z             {
2026-06-15T10:02:42.8595631Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8595722Z               "line": 711
2026-06-15T10:02:42.8595799Z             },
2026-06-15T10:02:42.8595885Z             {
2026-06-15T10:02:42.8595998Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8596090Z               "line": 725
2026-06-15T10:02:42.8596180Z             },
2026-06-15T10:02:42.8596251Z             {
2026-06-15T10:02:42.8596375Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.8596471Z               "line": 132
2026-06-15T10:02:42.8596547Z             },
2026-06-15T10:02:42.8596632Z             {
2026-06-15T10:02:42.8596753Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T10:02:42.8596843Z               "line": 26
2026-06-15T10:02:42.8596929Z             },
2026-06-15T10:02:42.8597015Z             {
2026-06-15T10:02:42.8597134Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T10:02:42.8597224Z               "line": 97
2026-06-15T10:02:42.8597305Z             },
2026-06-15T10:02:42.8597378Z             {
2026-06-15T10:02:42.8597496Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T10:02:42.8597585Z               "line": 119
2026-06-15T10:02:42.8597671Z             },
2026-06-15T10:02:42.8597747Z             {
2026-06-15T10:02:42.8597864Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8597955Z               "line": 82
2026-06-15T10:02:42.8598036Z             },
2026-06-15T10:02:42.8598118Z             {
2026-06-15T10:02:42.8598236Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8598327Z               "line": 111
2026-06-15T10:02:42.8598485Z             },
2026-06-15T10:02:42.8598560Z             {
2026-06-15T10:02:42.8598676Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8598832Z               "line": 232
2026-06-15T10:02:42.8598923Z             },
2026-06-15T10:02:42.8599075Z             {
2026-06-15T10:02:42.8599194Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8599282Z               "line": 245
2026-06-15T10:02:42.8599367Z             },
2026-06-15T10:02:42.8599457Z             {
2026-06-15T10:02:42.8599557Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8599654Z               "line": 4218
2026-06-15T10:02:42.8599733Z             }
2026-06-15T10:02:42.8599819Z           ]
2026-06-15T10:02:42.8599911Z         },
2026-06-15T10:02:42.8599987Z         "int": {
2026-06-15T10:02:42.8600076Z           "complete": true,
2026-06-15T10:02:42.8600168Z           "evidence": [
2026-06-15T10:02:42.8600254Z             {
2026-06-15T10:02:42.8600377Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-15T10:02:42.8600476Z               "line": 98
2026-06-15T10:02:42.8600558Z             },
2026-06-15T10:02:42.8600638Z             {
2026-06-15T10:02:42.8600750Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-15T10:02:42.8600836Z               "line": 140
2026-06-15T10:02:42.8600928Z             }
2026-06-15T10:02:42.8601009Z           ]
2026-06-15T10:02:42.8601089Z         },
2026-06-15T10:02:42.8601180Z         "unit": {
2026-06-15T10:02:42.8601271Z           "complete": true,
2026-06-15T10:02:42.8601366Z           "evidence": [
2026-06-15T10:02:42.8601442Z             {
2026-06-15T10:02:42.8601581Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T10:02:42.8601667Z               "line": 178
2026-06-15T10:02:42.8601761Z             },
2026-06-15T10:02:42.8601843Z             {
2026-06-15T10:02:42.8601966Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T10:02:42.8602062Z               "line": 242
2026-06-15T10:02:42.8602144Z             },
2026-06-15T10:02:42.8602239Z             {
2026-06-15T10:02:42.8602352Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8602449Z               "line": 1079
2026-06-15T10:02:42.8602526Z             },
2026-06-15T10:02:42.8602605Z             {
2026-06-15T10:02:42.8602725Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8602817Z               "line": 1109
2026-06-15T10:02:42.8602892Z             },
2026-06-15T10:02:42.8602972Z             {
2026-06-15T10:02:42.8603091Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-15T10:02:42.8603181Z               "line": 1129
2026-06-15T10:02:42.8603265Z             },
2026-06-15T10:02:42.8603346Z             {
2026-06-15T10:02:42.8603475Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-15T10:02:42.8603570Z               "line": 602
2026-06-15T10:02:42.8603651Z             },
2026-06-15T10:02:42.8603742Z             {
2026-06-15T10:02:42.8603861Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T10:02:42.8603946Z               "line": 148
2026-06-15T10:02:42.8604042Z             },
2026-06-15T10:02:42.8604124Z             {
2026-06-15T10:02:42.8604233Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T10:02:42.8604328Z               "line": 169
2026-06-15T10:02:42.8604405Z             },
2026-06-15T10:02:42.8604490Z             {
2026-06-15T10:02:42.8604604Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T10:02:42.8604701Z               "line": 181
2026-06-15T10:02:42.8604777Z             },
2026-06-15T10:02:42.8604867Z             {
2026-06-15T10:02:42.8604976Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-15T10:02:42.8605069Z               "line": 202
2026-06-15T10:02:42.8605158Z             },
2026-06-15T10:02:42.8605234Z             {
2026-06-15T10:02:42.8605340Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8605525Z               "line": 375
2026-06-15T10:02:42.8605611Z             },
2026-06-15T10:02:42.8605698Z             {
2026-06-15T10:02:42.8605905Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8605996Z               "line": 407
2026-06-15T10:02:42.8606078Z             },
2026-06-15T10:02:42.8606163Z             {
2026-06-15T10:02:42.8606258Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8606354Z               "line": 8312
2026-06-15T10:02:42.8606445Z             }
2026-06-15T10:02:42.8606520Z           ]
2026-06-15T10:02:42.8606607Z         }
2026-06-15T10:02:42.8606693Z       }
2026-06-15T10:02:42.8606779Z     },
2026-06-15T10:02:42.8606864Z     {
2026-06-15T10:02:42.8606955Z       "id": "REQ-MESH-5",
2026-06-15T10:02:42.8608354Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-15T10:02:42.8608448Z       "requiredStages": [
2026-06-15T10:02:42.8608544Z         "impl",
2026-06-15T10:02:42.8608626Z         "unit"
2026-06-15T10:02:42.8608716Z       ],
2026-06-15T10:02:42.8608805Z       "stages": {
2026-06-15T10:02:42.8608883Z         "doc": {
2026-06-15T10:02:42.8609040Z           "complete": false,
2026-06-15T10:02:42.8609130Z           "evidence": []
2026-06-15T10:02:42.8609221Z         },
2026-06-15T10:02:42.8609298Z         "impl": {
2026-06-15T10:02:42.8609406Z           "complete": true,
2026-06-15T10:02:42.8609498Z           "evidence": [
2026-06-15T10:02:42.8609574Z             {
2026-06-15T10:02:42.8609703Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T10:02:42.8609798Z               "line": 61
2026-06-15T10:02:42.8609889Z             },
2026-06-15T10:02:42.8609984Z             {
2026-06-15T10:02:42.8610098Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T10:02:42.8610199Z               "line": 109
2026-06-15T10:02:42.8610279Z             },
2026-06-15T10:02:42.8610365Z             {
2026-06-15T10:02:42.8610481Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.8610575Z               "line": 104
2026-06-15T10:02:42.8610666Z             },
2026-06-15T10:02:42.8610743Z             {
2026-06-15T10:02:42.8610862Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T10:02:42.8610942Z               "line": 105
2026-06-15T10:02:42.8611027Z             },
2026-06-15T10:02:42.8611098Z             {
2026-06-15T10:02:42.8611226Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8611320Z               "line": 85
2026-06-15T10:02:42.8611396Z             },
2026-06-15T10:02:42.8611493Z             {
2026-06-15T10:02:42.8611616Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8611711Z               "line": 250
2026-06-15T10:02:42.8611793Z             },
2026-06-15T10:02:42.8611869Z             {
2026-06-15T10:02:42.8611997Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8612089Z               "line": 314
2026-06-15T10:02:42.8612169Z             },
2026-06-15T10:02:42.8612246Z             {
2026-06-15T10:02:42.8612360Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8612451Z               "line": 715
2026-06-15T10:02:42.8612546Z             },
2026-06-15T10:02:42.8612641Z             {
2026-06-15T10:02:42.8612752Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T10:02:42.8612846Z               "line": 101
2026-06-15T10:02:42.8612922Z             },
2026-06-15T10:02:42.8613004Z             {
2026-06-15T10:02:42.8613119Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T10:02:42.8613324Z               "line": 193
2026-06-15T10:02:42.8613401Z             }
2026-06-15T10:02:42.8613489Z           ]
2026-06-15T10:02:42.8613684Z         },
2026-06-15T10:02:42.8613760Z         "int": {
2026-06-15T10:02:42.8613858Z           "complete": false,
2026-06-15T10:02:42.8613948Z           "evidence": []
2026-06-15T10:02:42.8614035Z         },
2026-06-15T10:02:42.8614121Z         "unit": {
2026-06-15T10:02:42.8614220Z           "complete": true,
2026-06-15T10:02:42.8614316Z           "evidence": [
2026-06-15T10:02:42.8614388Z             {
2026-06-15T10:02:42.8614516Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8614597Z               "line": 957
2026-06-15T10:02:42.8614675Z             },
2026-06-15T10:02:42.8614760Z             {
2026-06-15T10:02:42.8614874Z               "path": "crates/spt-store/src/roster.rs",
2026-06-15T10:02:42.8614970Z               "line": 462
2026-06-15T10:02:42.8615046Z             }
2026-06-15T10:02:42.8615136Z           ]
2026-06-15T10:02:42.8615212Z         }
2026-06-15T10:02:42.8615295Z       }
2026-06-15T10:02:42.8615370Z     },
2026-06-15T10:02:42.8615451Z     {
2026-06-15T10:02:42.8615546Z       "id": "REQ-MESH-6",
2026-06-15T10:02:42.8616771Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-15T10:02:42.8616871Z       "requiredStages": [
2026-06-15T10:02:42.8616967Z         "impl",
2026-06-15T10:02:42.8617038Z         "unit"
2026-06-15T10:02:42.8617118Z       ],
2026-06-15T10:02:42.8617196Z       "stages": {
2026-06-15T10:02:42.8617286Z         "doc": {
2026-06-15T10:02:42.8617381Z           "complete": false,
2026-06-15T10:02:42.8617482Z           "evidence": []
2026-06-15T10:02:42.8617558Z         },
2026-06-15T10:02:42.8617639Z         "impl": {
2026-06-15T10:02:42.8617734Z           "complete": true,
2026-06-15T10:02:42.8617830Z           "evidence": [
2026-06-15T10:02:42.8617906Z             {
2026-06-15T10:02:42.8618001Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8618101Z               "line": 3741
2026-06-15T10:02:42.8618193Z             }
2026-06-15T10:02:42.8618268Z           ]
2026-06-15T10:02:42.8618349Z         },
2026-06-15T10:02:42.8618425Z         "int": {
2026-06-15T10:02:42.8618522Z           "complete": false,
2026-06-15T10:02:42.8618611Z           "evidence": []
2026-06-15T10:02:42.8618686Z         },
2026-06-15T10:02:42.8618767Z         "unit": {
2026-06-15T10:02:42.8618858Z           "complete": true,
2026-06-15T10:02:42.8619018Z           "evidence": [
2026-06-15T10:02:42.8619094Z             {
2026-06-15T10:02:42.8619195Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8619290Z               "line": 8842
2026-06-15T10:02:42.8619370Z             },
2026-06-15T10:02:42.8619448Z             {
2026-06-15T10:02:42.8619557Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8619647Z               "line": 8869
2026-06-15T10:02:42.8619723Z             },
2026-06-15T10:02:42.8619815Z             {
2026-06-15T10:02:42.8619914Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8620009Z               "line": 8893
2026-06-15T10:02:42.8620096Z             }
2026-06-15T10:02:42.8620168Z           ]
2026-06-15T10:02:42.8620258Z         }
2026-06-15T10:02:42.8620344Z       }
2026-06-15T10:02:42.8620420Z     },
2026-06-15T10:02:42.8620501Z     {
2026-06-15T10:02:42.8620592Z       "id": "REQ-MIGRATE-1",
2026-06-15T10:02:42.8620769Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-15T10:02:42.8620867Z       "requiredStages": [],
2026-06-15T10:02:42.8620958Z       "stages": {
2026-06-15T10:02:42.8621036Z         "doc": {
2026-06-15T10:02:42.8621231Z           "complete": false,
2026-06-15T10:02:42.8621322Z           "evidence": []
2026-06-15T10:02:42.8621408Z         },
2026-06-15T10:02:42.8621587Z         "impl": {
2026-06-15T10:02:42.8621678Z           "complete": false,
2026-06-15T10:02:42.8621772Z           "evidence": []
2026-06-15T10:02:42.8621852Z         },
2026-06-15T10:02:42.8621942Z         "int": {
2026-06-15T10:02:42.8622033Z           "complete": false,
2026-06-15T10:02:42.8622124Z           "evidence": []
2026-06-15T10:02:42.8622199Z         },
2026-06-15T10:02:42.8622275Z         "unit": {
2026-06-15T10:02:42.8622368Z           "complete": false,
2026-06-15T10:02:42.8622444Z           "evidence": []
2026-06-15T10:02:42.8622523Z         }
2026-06-15T10:02:42.8622595Z       }
2026-06-15T10:02:42.8622677Z     },
2026-06-15T10:02:42.8622763Z     {
2026-06-15T10:02:42.8622857Z       "id": "REQ-MSG-1",
2026-06-15T10:02:42.8623297Z       "title": "Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)",
2026-06-15T10:02:42.8623396Z       "requiredStages": [
2026-06-15T10:02:42.8623482Z         "impl",
2026-06-15T10:02:42.8623564Z         "unit",
2026-06-15T10:02:42.8623641Z         "int"
2026-06-15T10:02:42.8623720Z       ],
2026-06-15T10:02:42.8623806Z       "stages": {
2026-06-15T10:02:42.8623894Z         "doc": {
2026-06-15T10:02:42.8623984Z           "complete": false,
2026-06-15T10:02:42.8624078Z           "evidence": []
2026-06-15T10:02:42.8624163Z         },
2026-06-15T10:02:42.8624244Z         "impl": {
2026-06-15T10:02:42.8624339Z           "complete": true,
2026-06-15T10:02:42.8624433Z           "evidence": [
2026-06-15T10:02:42.8624518Z             {
2026-06-15T10:02:42.8624633Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T10:02:42.8624733Z               "line": 28
2026-06-15T10:02:42.8624823Z             },
2026-06-15T10:02:42.8624896Z             {
2026-06-15T10:02:42.8625020Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T10:02:42.8625109Z               "line": 94
2026-06-15T10:02:42.8625196Z             },
2026-06-15T10:02:42.8625291Z             {
2026-06-15T10:02:42.8625410Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T10:02:42.8625506Z               "line": 127
2026-06-15T10:02:42.8625596Z             },
2026-06-15T10:02:42.8625687Z             {
2026-06-15T10:02:42.8625796Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T10:02:42.8625888Z               "line": 149
2026-06-15T10:02:42.8625963Z             },
2026-06-15T10:02:42.8626039Z             {
2026-06-15T10:02:42.8626155Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T10:02:42.8626240Z               "line": 174
2026-06-15T10:02:42.8626326Z             },
2026-06-15T10:02:42.8626411Z             {
2026-06-15T10:02:42.8626532Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T10:02:42.8626616Z               "line": 18
2026-06-15T10:02:42.8626702Z             },
2026-06-15T10:02:42.8626784Z             {
2026-06-15T10:02:42.8626898Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T10:02:42.8626997Z               "line": 13
2026-06-15T10:02:42.8627073Z             },
2026-06-15T10:02:42.8627169Z             {
2026-06-15T10:02:42.8627264Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T10:02:42.8627359Z               "line": 62
2026-06-15T10:02:42.8627450Z             },
2026-06-15T10:02:42.8627527Z             {
2026-06-15T10:02:42.8627636Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T10:02:42.8627722Z               "line": 13
2026-06-15T10:02:42.8627808Z             }
2026-06-15T10:02:42.8627894Z           ]
2026-06-15T10:02:42.8627984Z         },
2026-06-15T10:02:42.8628070Z         "int": {
2026-06-15T10:02:42.8628161Z           "complete": true,
2026-06-15T10:02:42.8628251Z           "evidence": [
2026-06-15T10:02:42.8628336Z             {
2026-06-15T10:02:42.8628476Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T10:02:42.8628632Z               "line": 9
2026-06-15T10:02:42.8628729Z             },
2026-06-15T10:02:42.8628899Z             {
2026-06-15T10:02:42.8629119Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T10:02:42.8629214Z               "line": 56
2026-06-15T10:02:42.8629289Z             },
2026-06-15T10:02:42.8629380Z             {
2026-06-15T10:02:42.8629516Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T10:02:42.8629616Z               "line": 113
2026-06-15T10:02:42.8629702Z             }
2026-06-15T10:02:42.8629789Z           ]
2026-06-15T10:02:42.8629864Z         },
2026-06-15T10:02:42.8629945Z         "unit": {
2026-06-15T10:02:42.8630036Z           "complete": true,
2026-06-15T10:02:42.8630131Z           "evidence": [
2026-06-15T10:02:42.8630216Z             {
2026-06-15T10:02:42.8630332Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T10:02:42.8630427Z               "line": 203
2026-06-15T10:02:42.8630517Z             },
2026-06-15T10:02:42.8630594Z             {
2026-06-15T10:02:42.8630708Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T10:02:42.8630803Z               "line": 232
2026-06-15T10:02:42.8630874Z             },
2026-06-15T10:02:42.8630952Z             {
2026-06-15T10:02:42.8631066Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T10:02:42.8631156Z               "line": 277
2026-06-15T10:02:42.8631238Z             },
2026-06-15T10:02:42.8631334Z             {
2026-06-15T10:02:42.8631437Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T10:02:42.8631528Z               "line": 300
2026-06-15T10:02:42.8631615Z             },
2026-06-15T10:02:42.8631695Z             {
2026-06-15T10:02:42.8631805Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-15T10:02:42.8631891Z               "line": 325
2026-06-15T10:02:42.8631982Z             },
2026-06-15T10:02:42.8632071Z             {
2026-06-15T10:02:42.8632189Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T10:02:42.8632285Z               "line": 204
2026-06-15T10:02:42.8632365Z             },
2026-06-15T10:02:42.8632459Z             {
2026-06-15T10:02:42.8632569Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T10:02:42.8632665Z               "line": 237
2026-06-15T10:02:42.8632745Z             },
2026-06-15T10:02:42.8632826Z             {
2026-06-15T10:02:42.8632942Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T10:02:42.8633032Z               "line": 251
2026-06-15T10:02:42.8633122Z             },
2026-06-15T10:02:42.8633194Z             {
2026-06-15T10:02:42.8633313Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T10:02:42.8633403Z               "line": 263
2026-06-15T10:02:42.8633484Z             },
2026-06-15T10:02:42.8633566Z             {
2026-06-15T10:02:42.8633671Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T10:02:42.8633761Z               "line": 162
2026-06-15T10:02:42.8633838Z             },
2026-06-15T10:02:42.8633929Z             {
2026-06-15T10:02:42.8634033Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-15T10:02:42.8634114Z               "line": 242
2026-06-15T10:02:42.8634196Z             },
2026-06-15T10:02:42.8634276Z             {
2026-06-15T10:02:42.8634386Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T10:02:42.8634468Z               "line": 134
2026-06-15T10:02:42.8634544Z             },
2026-06-15T10:02:42.8634633Z             {
2026-06-15T10:02:42.8634732Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T10:02:42.8634823Z               "line": 153
2026-06-15T10:02:42.8634904Z             }
2026-06-15T10:02:42.8634983Z           ]
2026-06-15T10:02:42.8635059Z         }
2026-06-15T10:02:42.8635141Z       }
2026-06-15T10:02:42.8635218Z     },
2026-06-15T10:02:42.8635288Z     {
2026-06-15T10:02:42.8635388Z       "id": "REQ-MSG-2",
2026-06-15T10:02:42.8635650Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-15T10:02:42.8635851Z       "requiredStages": [
2026-06-15T10:02:42.8636022Z         "impl",
2026-06-15T10:02:42.8636109Z         "unit"
2026-06-15T10:02:42.8636199Z       ],
2026-06-15T10:02:42.8636284Z       "stages": {
2026-06-15T10:02:42.8636376Z         "doc": {
2026-06-15T10:02:42.8636471Z           "complete": false,
2026-06-15T10:02:42.8636566Z           "evidence": []
2026-06-15T10:02:42.8636652Z         },
2026-06-15T10:02:42.8636739Z         "impl": {
2026-06-15T10:02:42.8636833Z           "complete": true,
2026-06-15T10:02:42.8636919Z           "evidence": [
2026-06-15T10:02:42.8637006Z             {
2026-06-15T10:02:42.8637106Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8637200Z               "line": 11
2026-06-15T10:02:42.8637277Z             },
2026-06-15T10:02:42.8637359Z             {
2026-06-15T10:02:42.8637472Z               "path": "crates/spt/src/main.rs",
2026-06-15T10:02:42.8637567Z               "line": 8
2026-06-15T10:02:42.8637657Z             }
2026-06-15T10:02:42.8637729Z           ]
2026-06-15T10:02:42.8637815Z         },
2026-06-15T10:02:42.8637895Z         "int": {
2026-06-15T10:02:42.8637996Z           "complete": false,
2026-06-15T10:02:42.8638082Z           "evidence": []
2026-06-15T10:02:42.8638162Z         },
2026-06-15T10:02:42.8638252Z         "unit": {
2026-06-15T10:02:42.8638345Z           "complete": true,
2026-06-15T10:02:42.8638440Z           "evidence": [
2026-06-15T10:02:42.8638510Z             {
2026-06-15T10:02:42.8638616Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8638711Z               "line": 6217
2026-06-15T10:02:42.8638792Z             },
2026-06-15T10:02:42.8638873Z             {
2026-06-15T10:02:42.8639050Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8639145Z               "line": 6259
2026-06-15T10:02:42.8639221Z             },
2026-06-15T10:02:42.8639313Z             {
2026-06-15T10:02:42.8639440Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8639531Z               "line": 6308
2026-06-15T10:02:42.8639609Z             },
2026-06-15T10:02:42.8639689Z             {
2026-06-15T10:02:42.8639788Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8639878Z               "line": 6331
2026-06-15T10:02:42.8639954Z             },
2026-06-15T10:02:42.8640043Z             {
2026-06-15T10:02:42.8640142Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8640238Z               "line": 8067
2026-06-15T10:02:42.8640325Z             },
2026-06-15T10:02:42.8640410Z             {
2026-06-15T10:02:42.8640515Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8640611Z               "line": 8076
2026-06-15T10:02:42.8640701Z             },
2026-06-15T10:02:42.8640776Z             {
2026-06-15T10:02:42.8640873Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8640954Z               "line": 8090
2026-06-15T10:02:42.8641030Z             }
2026-06-15T10:02:42.8641110Z           ]
2026-06-15T10:02:42.8641193Z         }
2026-06-15T10:02:42.8641273Z       }
2026-06-15T10:02:42.8641349Z     },
2026-06-15T10:02:42.8641434Z     {
2026-06-15T10:02:42.8641527Z       "id": "REQ-MSG-3",
2026-06-15T10:02:42.8641903Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-15T10:02:42.8642002Z       "requiredStages": [
2026-06-15T10:02:42.8642093Z         "impl",
2026-06-15T10:02:42.8642189Z         "unit",
2026-06-15T10:02:42.8642265Z         "int"
2026-06-15T10:02:42.8642346Z       ],
2026-06-15T10:02:42.8642428Z       "stages": {
2026-06-15T10:02:42.8642518Z         "doc": {
2026-06-15T10:02:42.8642612Z           "complete": false,
2026-06-15T10:02:42.8642702Z           "evidence": []
2026-06-15T10:02:42.8642793Z         },
2026-06-15T10:02:42.8642869Z         "impl": {
2026-06-15T10:02:42.8642967Z           "complete": true,
2026-06-15T10:02:42.8643178Z           "evidence": [
2026-06-15T10:02:42.8643268Z             {
2026-06-15T10:02:42.8643382Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-15T10:02:42.8643578Z               "line": 19
2026-06-15T10:02:42.8643667Z             },
2026-06-15T10:02:42.8643745Z             {
2026-06-15T10:02:42.8643863Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T10:02:42.8643954Z               "line": 21
2026-06-15T10:02:42.8644044Z             },
2026-06-15T10:02:42.8644136Z             {
2026-06-15T10:02:42.8644245Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T10:02:42.8644340Z               "line": 48
2026-06-15T10:02:42.8644417Z             },
2026-06-15T10:02:42.8644507Z             {
2026-06-15T10:02:42.8644616Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T10:02:42.8644718Z               "line": 151
2026-06-15T10:02:42.8644808Z             }
2026-06-15T10:02:42.8644888Z           ]
2026-06-15T10:02:42.8644970Z         },
2026-06-15T10:02:42.8645047Z         "int": {
2026-06-15T10:02:42.8645146Z           "complete": true,
2026-06-15T10:02:42.8645236Z           "evidence": [
2026-06-15T10:02:42.8645331Z             {
2026-06-15T10:02:42.8645464Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T10:02:42.8645543Z               "line": 10
2026-06-15T10:02:42.8645624Z             },
2026-06-15T10:02:42.8645701Z             {
2026-06-15T10:02:42.8645834Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-15T10:02:42.8645924Z               "line": 56
2026-06-15T10:02:42.8646016Z             }
2026-06-15T10:02:42.8646101Z           ]
2026-06-15T10:02:42.8646177Z         },
2026-06-15T10:02:42.8646263Z         "unit": {
2026-06-15T10:02:42.8646360Z           "complete": true,
2026-06-15T10:02:42.8646459Z           "evidence": [
2026-06-15T10:02:42.8646549Z             {
2026-06-15T10:02:42.8646660Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T10:02:42.8646759Z               "line": 205
2026-06-15T10:02:42.8646839Z             },
2026-06-15T10:02:42.8646926Z             {
2026-06-15T10:02:42.8647036Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T10:02:42.8647122Z               "line": 224
2026-06-15T10:02:42.8647208Z             },
2026-06-15T10:02:42.8647294Z             {
2026-06-15T10:02:42.8647407Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-15T10:02:42.8647498Z               "line": 247
2026-06-15T10:02:42.8647571Z             }
2026-06-15T10:02:42.8647652Z           ]
2026-06-15T10:02:42.8647741Z         }
2026-06-15T10:02:42.8647822Z       }
2026-06-15T10:02:42.8647909Z     },
2026-06-15T10:02:42.8647995Z     {
2026-06-15T10:02:42.8648074Z       "id": "REQ-MSG-4",
2026-06-15T10:02:42.8648895Z       "title": "Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type=\"msg\" from=…> otherwise, chunk oversized lines into EVENT-PART",
2026-06-15T10:02:42.8649065Z       "requiredStages": [
2026-06-15T10:02:42.8649162Z         "impl",
2026-06-15T10:02:42.8649248Z         "unit",
2026-06-15T10:02:42.8649328Z         "int"
2026-06-15T10:02:42.8649404Z       ],
2026-06-15T10:02:42.8649491Z       "stages": {
2026-06-15T10:02:42.8649577Z         "doc": {
2026-06-15T10:02:42.8649667Z           "complete": false,
2026-06-15T10:02:42.8649753Z           "evidence": []
2026-06-15T10:02:42.8649840Z         },
2026-06-15T10:02:42.8649934Z         "impl": {
2026-06-15T10:02:42.8650029Z           "complete": true,
2026-06-15T10:02:42.8650120Z           "evidence": [
2026-06-15T10:02:42.8650207Z             {
2026-06-15T10:02:42.8650315Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T10:02:42.8650409Z               "line": 19
2026-06-15T10:02:42.8650491Z             },
2026-06-15T10:02:42.8650571Z             {
2026-06-15T10:02:42.8650679Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T10:02:42.8650875Z               "line": 46
2026-06-15T10:02:42.8650965Z             },
2026-06-15T10:02:42.8651050Z             {
2026-06-15T10:02:42.8651161Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.8651341Z               "line": 409
2026-06-15T10:02:42.8651418Z             },
2026-06-15T10:02:42.8651505Z             {
2026-06-15T10:02:42.8651608Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8651699Z               "line": 2712
2026-06-15T10:02:42.8651777Z             }
2026-06-15T10:02:42.8651857Z           ]
2026-06-15T10:02:42.8651952Z         },
2026-06-15T10:02:42.8652024Z         "int": {
2026-06-15T10:02:42.8652105Z           "complete": true,
2026-06-15T10:02:42.8652200Z           "evidence": [
2026-06-15T10:02:42.8652276Z             {
2026-06-15T10:02:42.8652392Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T10:02:42.8652486Z               "line": 98
2026-06-15T10:02:42.8652577Z             },
2026-06-15T10:02:42.8652648Z             {
2026-06-15T10:02:42.8652768Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-15T10:02:42.8652858Z               "line": 128
2026-06-15T10:02:42.8652953Z             }
2026-06-15T10:02:42.8653031Z           ]
2026-06-15T10:02:42.8653116Z         },
2026-06-15T10:02:42.8653196Z         "unit": {
2026-06-15T10:02:42.8653286Z           "complete": true,
2026-06-15T10:02:42.8653377Z           "evidence": [
2026-06-15T10:02:42.8653461Z             {
2026-06-15T10:02:42.8653574Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T10:02:42.8653665Z               "line": 68
2026-06-15T10:02:42.8653757Z             },
2026-06-15T10:02:42.8653842Z             {
2026-06-15T10:02:42.8653942Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T10:02:42.8654033Z               "line": 79
2026-06-15T10:02:42.8654129Z             },
2026-06-15T10:02:42.8654204Z             {
2026-06-15T10:02:42.8654315Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T10:02:42.8654414Z               "line": 90
2026-06-15T10:02:42.8654500Z             },
2026-06-15T10:02:42.8654576Z             {
2026-06-15T10:02:42.8654686Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T10:02:42.8654776Z               "line": 151
2026-06-15T10:02:42.8654857Z             }
2026-06-15T10:02:42.8654944Z           ]
2026-06-15T10:02:42.8655030Z         }
2026-06-15T10:02:42.8655119Z       }
2026-06-15T10:02:42.8655196Z     },
2026-06-15T10:02:42.8655283Z     {
2026-06-15T10:02:42.8655359Z       "id": "REQ-MSG-5",
2026-06-15T10:02:42.8656079Z       "title": "user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)",
2026-06-15T10:02:42.8656179Z       "requiredStages": [
2026-06-15T10:02:42.8656256Z         "doc",
2026-06-15T10:02:42.8656353Z         "impl",
2026-06-15T10:02:42.8656441Z         "unit"
2026-06-15T10:02:42.8656537Z       ],
2026-06-15T10:02:42.8656614Z       "stages": {
2026-06-15T10:02:42.8656709Z         "doc": {
2026-06-15T10:02:42.8656804Z           "complete": true,
2026-06-15T10:02:42.8656886Z           "evidence": [
2026-06-15T10:02:42.8656966Z             {
2026-06-15T10:02:42.8657061Z               "path": "CONTEXT.md",
2026-06-15T10:02:42.8657157Z               "line": 212
2026-06-15T10:02:42.8657239Z             }
2026-06-15T10:02:42.8657324Z           ]
2026-06-15T10:02:42.8657395Z         },
2026-06-15T10:02:42.8657481Z         "impl": {
2026-06-15T10:02:42.8657578Z           "complete": true,
2026-06-15T10:02:42.8657668Z           "evidence": [
2026-06-15T10:02:42.8657753Z             {
2026-06-15T10:02:42.8660371Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T10:02:42.8660489Z               "line": 60
2026-06-15T10:02:42.8660574Z             },
2026-06-15T10:02:42.8660656Z             {
2026-06-15T10:02:42.8660790Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.8661017Z               "line": 118
2026-06-15T10:02:42.8661107Z             },
2026-06-15T10:02:42.8661191Z             {
2026-06-15T10:02:42.8661406Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.8661501Z               "line": 127
2026-06-15T10:02:42.8661582Z             },
2026-06-15T10:02:42.8661668Z             {
2026-06-15T10:02:42.8661788Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.8661883Z               "line": 141
2026-06-15T10:02:42.8661964Z             },
2026-06-15T10:02:42.8662055Z             {
2026-06-15T10:02:42.8662164Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.8662254Z               "line": 170
2026-06-15T10:02:42.8662341Z             },
2026-06-15T10:02:42.8662427Z             {
2026-06-15T10:02:42.8662541Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8662632Z               "line": 2458
2026-06-15T10:02:42.8662713Z             }
2026-06-15T10:02:42.8662803Z           ]
2026-06-15T10:02:42.8662883Z         },
2026-06-15T10:02:42.8662981Z         "int": {
2026-06-15T10:02:42.8663070Z           "complete": true,
2026-06-15T10:02:42.8663165Z           "evidence": [
2026-06-15T10:02:42.8663242Z             {
2026-06-15T10:02:42.8663357Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-15T10:02:42.8663446Z               "line": 19
2026-06-15T10:02:42.8663518Z             }
2026-06-15T10:02:42.8663601Z           ]
2026-06-15T10:02:42.8663686Z         },
2026-06-15T10:02:42.8663793Z         "unit": {
2026-06-15T10:02:42.8663898Z           "complete": true,
2026-06-15T10:02:42.8663993Z           "evidence": [
2026-06-15T10:02:42.8664106Z             {
2026-06-15T10:02:42.8664221Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T10:02:42.8664312Z               "line": 192
2026-06-15T10:02:42.8664388Z             },
2026-06-15T10:02:42.8664477Z             {
2026-06-15T10:02:42.8664608Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T10:02:42.8664707Z               "line": 154
2026-06-15T10:02:42.8664797Z             },
2026-06-15T10:02:42.8664875Z             {
2026-06-15T10:02:42.8664988Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T10:02:42.8665079Z               "line": 122
2026-06-15T10:02:42.8665169Z             },
2026-06-15T10:02:42.8665246Z             {
2026-06-15T10:02:42.8665365Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.8665460Z               "line": 444
2026-06-15T10:02:42.8665537Z             },
2026-06-15T10:02:42.8665613Z             {
2026-06-15T10:02:42.8665718Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.8665809Z               "line": 493
2026-06-15T10:02:42.8665895Z             },
2026-06-15T10:02:42.8665984Z             {
2026-06-15T10:02:42.8666100Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.8666191Z               "line": 509
2026-06-15T10:02:42.8666276Z             },
2026-06-15T10:02:42.8666365Z             {
2026-06-15T10:02:42.8666480Z               "path": "crates/spt-proto/src/event.rs",
2026-06-15T10:02:42.8666565Z               "line": 528
2026-06-15T10:02:42.8666658Z             },
2026-06-15T10:02:42.8666748Z             {
2026-06-15T10:02:42.8666845Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8666941Z               "line": 6160
2026-06-15T10:02:42.8667016Z             }
2026-06-15T10:02:42.8667107Z           ]
2026-06-15T10:02:42.8667188Z         }
2026-06-15T10:02:42.8667265Z       }
2026-06-15T10:02:42.8667354Z     },
2026-06-15T10:02:42.8667432Z     {
2026-06-15T10:02:42.8667527Z       "id": "REQ-MSG-6",
2026-06-15T10:02:42.8669185Z       "title": "cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)",
2026-06-15T10:02:42.8669514Z       "requiredStages": [
2026-06-15T10:02:42.8669595Z         "doc",
2026-06-15T10:02:42.8669676Z         "impl",
2026-06-15T10:02:42.8669762Z         "unit"
2026-06-15T10:02:42.8669838Z       ],
2026-06-15T10:02:42.8669937Z       "stages": {
2026-06-15T10:02:42.8670025Z         "doc": {
2026-06-15T10:02:42.8670115Z           "complete": true,
2026-06-15T10:02:42.8670209Z           "evidence": [
2026-06-15T10:02:42.8670296Z             {
2026-06-15T10:02:42.8670391Z               "path": "CONTEXT.md",
2026-06-15T10:02:42.8670472Z               "line": 215
2026-06-15T10:02:42.8670563Z             }
2026-06-15T10:02:42.8670649Z           ]
2026-06-15T10:02:42.8670734Z         },
2026-06-15T10:02:42.8670820Z         "impl": {
2026-06-15T10:02:42.8670916Z           "complete": true,
2026-06-15T10:02:42.8671012Z           "evidence": [
2026-06-15T10:02:42.8671096Z             {
2026-06-15T10:02:42.8671230Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8671331Z               "line": 177
2026-06-15T10:02:42.8671406Z             },
2026-06-15T10:02:42.8671496Z             {
2026-06-15T10:02:42.8671625Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8671705Z               "line": 422
2026-06-15T10:02:42.8671785Z             },
2026-06-15T10:02:42.8671860Z             {
2026-06-15T10:02:42.8671986Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8672066Z               "line": 445
2026-06-15T10:02:42.8672156Z             },
2026-06-15T10:02:42.8672228Z             {
2026-06-15T10:02:42.8672348Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T10:02:42.8672433Z               "line": 89
2026-06-15T10:02:42.8672524Z             },
2026-06-15T10:02:42.8672620Z             {
2026-06-15T10:02:42.8672733Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8672829Z               "line": 155
2026-06-15T10:02:42.8672911Z             }
2026-06-15T10:02:42.8672996Z           ]
2026-06-15T10:02:42.8673072Z         },
2026-06-15T10:02:42.8673153Z         "int": {
2026-06-15T10:02:42.8673254Z           "complete": false,
2026-06-15T10:02:42.8673335Z           "evidence": []
2026-06-15T10:02:42.8673425Z         },
2026-06-15T10:02:42.8673507Z         "unit": {
2026-06-15T10:02:42.8673606Z           "complete": true,
2026-06-15T10:02:42.8673682Z           "evidence": [
2026-06-15T10:02:42.8673773Z             {
2026-06-15T10:02:42.8673903Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8673997Z               "line": 1639
2026-06-15T10:02:42.8674083Z             },
2026-06-15T10:02:42.8674161Z             {
2026-06-15T10:02:42.8674274Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T10:02:42.8674373Z               "line": 219
2026-06-15T10:02:42.8674463Z             }
2026-06-15T10:02:42.8674553Z           ]
2026-06-15T10:02:42.8674623Z         }
2026-06-15T10:02:42.8674718Z       }
2026-06-15T10:02:42.8674795Z     },
2026-06-15T10:02:42.8674872Z     {
2026-06-15T10:02:42.8674967Z       "id": "REQ-MSG-ENVELOPE",
2026-06-15T10:02:42.8678621Z       "title": "The <EVENT type=\"msg\" from=…>body</EVENT> envelope (spt-proto::event, the ADR-0001 grammar) is the SOLE canonical arriving-message format at EVERY harness arriving-message surface on an AGENT perch — api listen AND api poll/worker-poll, byte-identical (reverses REQ-MSG-4's 'hook drains keep the raw frame by contract'). SCOPE CARVE-OUT: the shell-command relay (api poll <shell-id> --link, cmd_poll_shell) is a distinct internal transport carrying RAW MAC'd stamped frames the shell child consumes verbatim — NOT an arriving-message surface, deliberately EXEMPT from <EVENT> composition (notify_shell_e2e guards this boundary). __REPLY_TO__ — mis-elevated during the clean-room port to a fake ADR-0001 'stable wire format' (spt-msg/wire.rs, lib.rs) — is REMOVED entirely (spool format_row, the spt-msg TCP frame, emit parse_frame); (from, body) carried structurally, <EVENT> composed once at the delivery boundary. No legacy sister-interop (spt-core never required it). Reply-correlation rebinds onto the structural from / <EVENT from=…> attribute (ADR-0009 access-gate + ADR-0012 Psyche/spt-live reply-target). Self-delimiting by construction → finding F-002 (non-self-delimiting multi-message poll) dissolves. ADR-0020.",
2026-06-15T10:02:42.8678892Z       "requiredStages": [
2026-06-15T10:02:42.8679059Z         "doc",
2026-06-15T10:02:42.8679145Z         "impl",
2026-06-15T10:02:42.8679221Z         "unit",
2026-06-15T10:02:42.8679308Z         "int"
2026-06-15T10:02:42.8679393Z       ],
2026-06-15T10:02:42.8679483Z       "stages": {
2026-06-15T10:02:42.8679561Z         "doc": {
2026-06-15T10:02:42.8679657Z           "complete": true,
2026-06-15T10:02:42.8679749Z           "evidence": [
2026-06-15T10:02:42.8679830Z             {
2026-06-15T10:02:42.8680064Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-15T10:02:42.8680164Z               "line": 47
2026-06-15T10:02:42.8680250Z             }
2026-06-15T10:02:42.8680331Z           ]
2026-06-15T10:02:42.8680416Z         },
2026-06-15T10:02:42.8680512Z         "impl": {
2026-06-15T10:02:42.8680604Z           "complete": true,
2026-06-15T10:02:42.8680694Z           "evidence": [
2026-06-15T10:02:42.8680769Z             {
2026-06-15T10:02:42.8680885Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T10:02:42.8680975Z               "line": 20
2026-06-15T10:02:42.8681051Z             },
2026-06-15T10:02:42.8681132Z             {
2026-06-15T10:02:42.8681243Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T10:02:42.8681332Z               "line": 33
2026-06-15T10:02:42.8681409Z             },
2026-06-15T10:02:42.8681486Z             {
2026-06-15T10:02:42.8681595Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T10:02:42.8681690Z               "line": 47
2026-06-15T10:02:42.8681781Z             },
2026-06-15T10:02:42.8681873Z             {
2026-06-15T10:02:42.8681985Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T10:02:42.8682065Z               "line": 58
2026-06-15T10:02:42.8682151Z             },
2026-06-15T10:02:42.8682232Z             {
2026-06-15T10:02:42.8682340Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T10:02:42.8682430Z               "line": 14
2026-06-15T10:02:42.8682512Z             },
2026-06-15T10:02:42.8682603Z             {
2026-06-15T10:02:42.8682698Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T10:02:42.8682788Z               "line": 27
2026-06-15T10:02:42.8682865Z             },
2026-06-15T10:02:42.8682950Z             {
2026-06-15T10:02:42.8683064Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T10:02:42.8683151Z               "line": 40
2026-06-15T10:02:42.8683237Z             },
2026-06-15T10:02:42.8683317Z             {
2026-06-15T10:02:42.8683433Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.8683518Z               "line": 92
2026-06-15T10:02:42.8683599Z             },
2026-06-15T10:02:42.8683675Z             {
2026-06-15T10:02:42.8683795Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T10:02:42.8683895Z               "line": 143
2026-06-15T10:02:42.8683985Z             },
2026-06-15T10:02:42.8684072Z             {
2026-06-15T10:02:42.8684185Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T10:02:42.8684276Z               "line": 216
2026-06-15T10:02:42.8684367Z             },
2026-06-15T10:02:42.8684444Z             {
2026-06-15T10:02:42.8684562Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.8684648Z               "line": 410
2026-06-15T10:02:42.8684735Z             },
2026-06-15T10:02:42.8684824Z             {
2026-06-15T10:02:42.8684933Z               "path": "crates/spt/src/api/worker.rs",
2026-06-15T10:02:42.8685127Z               "line": 78
2026-06-15T10:02:42.8685207Z             },
2026-06-15T10:02:42.8685388Z             {
2026-06-15T10:02:42.8685498Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8685593Z               "line": 2713
2026-06-15T10:02:42.8685675Z             }
2026-06-15T10:02:42.8685756Z           ]
2026-06-15T10:02:42.8685846Z         },
2026-06-15T10:02:42.8685936Z         "int": {
2026-06-15T10:02:42.8686037Z           "complete": true,
2026-06-15T10:02:42.8686128Z           "evidence": [
2026-06-15T10:02:42.8686204Z             {
2026-06-15T10:02:42.8686329Z               "path": "crates/spt/tests/poll_envelope_e2e.rs",
2026-06-15T10:02:42.8686409Z               "line": 15
2026-06-15T10:02:42.8686499Z             }
2026-06-15T10:02:42.8686576Z           ]
2026-06-15T10:02:42.8686658Z         },
2026-06-15T10:02:42.8686738Z         "unit": {
2026-06-15T10:02:42.8686833Z           "complete": true,
2026-06-15T10:02:42.8686929Z           "evidence": [
2026-06-15T10:02:42.8687010Z             {
2026-06-15T10:02:42.8687123Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T10:02:42.8687215Z               "line": 102
2026-06-15T10:02:42.8687301Z             },
2026-06-15T10:02:42.8687377Z             {
2026-06-15T10:02:42.8687490Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-15T10:02:42.8687585Z               "line": 137
2026-06-15T10:02:42.8687662Z             },
2026-06-15T10:02:42.8687750Z             {
2026-06-15T10:02:42.8687850Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T10:02:42.8687941Z               "line": 98
2026-06-15T10:02:42.8688018Z             },
2026-06-15T10:02:42.8688107Z             {
2026-06-15T10:02:42.8688222Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T10:02:42.8688299Z               "line": 106
2026-06-15T10:02:42.8688390Z             },
2026-06-15T10:02:42.8688465Z             {
2026-06-15T10:02:42.8688576Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T10:02:42.8688665Z               "line": 113
2026-06-15T10:02:42.8688751Z             },
2026-06-15T10:02:42.8688827Z             {
2026-06-15T10:02:42.8688929Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-15T10:02:42.8689109Z               "line": 122
2026-06-15T10:02:42.8689181Z             }
2026-06-15T10:02:42.8689267Z           ]
2026-06-15T10:02:42.8689348Z         }
2026-06-15T10:02:42.8689438Z       }
2026-06-15T10:02:42.8689525Z     },
2026-06-15T10:02:42.8689601Z     {
2026-06-15T10:02:42.8689696Z       "id": "REQ-NET-1",
2026-06-15T10:02:42.8689878Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-15T10:02:42.8689972Z       "requiredStages": [
2026-06-15T10:02:42.8690048Z         "impl",
2026-06-15T10:02:42.8690145Z         "unit",
2026-06-15T10:02:42.8690221Z         "int"
2026-06-15T10:02:42.8690300Z       ],
2026-06-15T10:02:42.8690395Z       "stages": {
2026-06-15T10:02:42.8690481Z         "doc": {
2026-06-15T10:02:42.8690578Z           "complete": false,
2026-06-15T10:02:42.8690662Z           "evidence": []
2026-06-15T10:02:42.8690748Z         },
2026-06-15T10:02:42.8690835Z         "impl": {
2026-06-15T10:02:42.8690926Z           "complete": true,
2026-06-15T10:02:42.8691020Z           "evidence": [
2026-06-15T10:02:42.8691102Z             {
2026-06-15T10:02:42.8691220Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T10:02:42.8691310Z               "line": 54
2026-06-15T10:02:42.8691392Z             },
2026-06-15T10:02:42.8691474Z             {
2026-06-15T10:02:42.8691593Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T10:02:42.8691688Z               "line": 594
2026-06-15T10:02:42.8691765Z             },
2026-06-15T10:02:42.8691840Z             {
2026-06-15T10:02:42.8691959Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-15T10:02:42.8692051Z               "line": 130
2026-06-15T10:02:42.8692137Z             },
2026-06-15T10:02:42.8692327Z             {
2026-06-15T10:02:42.8692456Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8692540Z               "line": 97
2026-06-15T10:02:42.8692721Z             },
2026-06-15T10:02:42.8692806Z             {
2026-06-15T10:02:42.8692915Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8693010Z               "line": 159
2026-06-15T10:02:42.8693091Z             },
2026-06-15T10:02:42.8693172Z             {
2026-06-15T10:02:42.8693290Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8693387Z               "line": 175
2026-06-15T10:02:42.8693463Z             },
2026-06-15T10:02:42.8693548Z             {
2026-06-15T10:02:42.8693678Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8693768Z               "line": 190
2026-06-15T10:02:42.8693853Z             },
2026-06-15T10:02:42.8693934Z             {
2026-06-15T10:02:42.8694054Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8694154Z               "line": 271
2026-06-15T10:02:42.8694230Z             },
2026-06-15T10:02:42.8694307Z             {
2026-06-15T10:02:42.8694431Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8694526Z               "line": 306
2026-06-15T10:02:42.8694612Z             },
2026-06-15T10:02:42.8694689Z             {
2026-06-15T10:02:42.8694807Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8694893Z               "line": 312
2026-06-15T10:02:42.8694976Z             },
2026-06-15T10:02:42.8695060Z             {
2026-06-15T10:02:42.8695175Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8695261Z               "line": 318
2026-06-15T10:02:42.8695338Z             },
2026-06-15T10:02:42.8695427Z             {
2026-06-15T10:02:42.8695545Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8695636Z               "line": 334
2026-06-15T10:02:42.8695711Z             },
2026-06-15T10:02:42.8695805Z             {
2026-06-15T10:02:42.8695920Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8696011Z               "line": 354
2026-06-15T10:02:42.8696101Z             },
2026-06-15T10:02:42.8696177Z             {
2026-06-15T10:02:42.8696297Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T10:02:42.8696392Z               "line": 35
2026-06-15T10:02:42.8696477Z             },
2026-06-15T10:02:42.8696560Z             {
2026-06-15T10:02:42.8696683Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T10:02:42.8696787Z               "line": 85
2026-06-15T10:02:42.8696864Z             },
2026-06-15T10:02:42.8696946Z             {
2026-06-15T10:02:42.8697059Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.8697155Z               "line": 138
2026-06-15T10:02:42.8697237Z             },
2026-06-15T10:02:42.8697317Z             {
2026-06-15T10:02:42.8697412Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8697509Z               "line": 2555
2026-06-15T10:02:42.8697594Z             },
2026-06-15T10:02:42.8697669Z             {
2026-06-15T10:02:42.8697780Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T10:02:42.8697871Z               "line": 17
2026-06-15T10:02:42.8697956Z             }
2026-06-15T10:02:42.8698040Z           ]
2026-06-15T10:02:42.8698116Z         },
2026-06-15T10:02:42.8698207Z         "int": {
2026-06-15T10:02:42.8698301Z           "complete": true,
2026-06-15T10:02:42.8698391Z           "evidence": [
2026-06-15T10:02:42.8698468Z             {
2026-06-15T10:02:42.8698602Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T10:02:42.8698696Z               "line": 341
2026-06-15T10:02:42.8698777Z             },
2026-06-15T10:02:42.8698864Z             {
2026-06-15T10:02:42.8699049Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8699136Z               "line": 606
2026-06-15T10:02:42.8699221Z             },
2026-06-15T10:02:42.8699407Z             {
2026-06-15T10:02:42.8699527Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8699716Z               "line": 879
2026-06-15T10:02:42.8699799Z             }
2026-06-15T10:02:42.8699869Z           ]
2026-06-15T10:02:42.8699964Z         },
2026-06-15T10:02:42.8700046Z         "unit": {
2026-06-15T10:02:42.8700147Z           "complete": true,
2026-06-15T10:02:42.8700241Z           "evidence": [
2026-06-15T10:02:42.8700322Z             {
2026-06-15T10:02:42.8700438Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T10:02:42.8700518Z               "line": 651
2026-06-15T10:02:42.8700594Z             },
2026-06-15T10:02:42.8700671Z             {
2026-06-15T10:02:42.8700791Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T10:02:42.8700884Z               "line": 686
2026-06-15T10:02:42.8700969Z             },
2026-06-15T10:02:42.8701056Z             {
2026-06-15T10:02:42.8701175Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T10:02:42.8701270Z               "line": 936
2026-06-15T10:02:42.8701351Z             },
2026-06-15T10:02:42.8701433Z             {
2026-06-15T10:02:42.8701551Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-15T10:02:42.8701632Z               "line": 201
2026-06-15T10:02:42.8701710Z             },
2026-06-15T10:02:42.8701795Z             {
2026-06-15T10:02:42.8701909Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8702000Z               "line": 442
2026-06-15T10:02:42.8702072Z             },
2026-06-15T10:02:42.8702153Z             {
2026-06-15T10:02:42.8702266Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8702363Z               "line": 456
2026-06-15T10:02:42.8702438Z             },
2026-06-15T10:02:42.8702519Z             {
2026-06-15T10:02:42.8702635Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8702715Z               "line": 475
2026-06-15T10:02:42.8702810Z             },
2026-06-15T10:02:42.8702891Z             {
2026-06-15T10:02:42.8703012Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T10:02:42.8703105Z               "line": 120
2026-06-15T10:02:42.8703190Z             },
2026-06-15T10:02:42.8703281Z             {
2026-06-15T10:02:42.8703399Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-15T10:02:42.8703494Z               "line": 163
2026-06-15T10:02:42.8703570Z             },
2026-06-15T10:02:42.8703656Z             {
2026-06-15T10:02:42.8703775Z               "path": "crates/spt-store/src/spool.rs",
2026-06-15T10:02:42.8703870Z               "line": 530
2026-06-15T10:02:42.8703952Z             },
2026-06-15T10:02:42.8704028Z             {
2026-06-15T10:02:42.8704142Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T10:02:42.8704233Z               "line": 616
2026-06-15T10:02:42.8704328Z             },
2026-06-15T10:02:42.8704404Z             {
2026-06-15T10:02:42.8704524Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T10:02:42.8704614Z               "line": 1006
2026-06-15T10:02:42.8704696Z             }
2026-06-15T10:02:42.8704790Z           ]
2026-06-15T10:02:42.8704867Z         }
2026-06-15T10:02:42.8704943Z       }
2026-06-15T10:02:42.8705020Z     },
2026-06-15T10:02:42.8705105Z     {
2026-06-15T10:02:42.8705197Z       "id": "REQ-NET-2",
2026-06-15T10:02:42.8705377Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-15T10:02:42.8705473Z       "requiredStages": [
2026-06-15T10:02:42.8705550Z         "impl"
2026-06-15T10:02:42.8705629Z       ],
2026-06-15T10:02:42.8705716Z       "stages": {
2026-06-15T10:02:42.8705802Z         "doc": {
2026-06-15T10:02:42.8705907Z           "complete": false,
2026-06-15T10:02:42.8705996Z           "evidence": []
2026-06-15T10:02:42.8706086Z         },
2026-06-15T10:02:42.8706163Z         "impl": {
2026-06-15T10:02:42.8706257Z           "complete": true,
2026-06-15T10:02:42.8706347Z           "evidence": [
2026-06-15T10:02:42.8706513Z             {
2026-06-15T10:02:42.8706642Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T10:02:42.8706800Z               "line": 57
2026-06-15T10:02:42.8706886Z             },
2026-06-15T10:02:42.8706966Z             {
2026-06-15T10:02:42.8707095Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8707177Z               "line": 71
2026-06-15T10:02:42.8707258Z             },
2026-06-15T10:02:42.8707338Z             {
2026-06-15T10:02:42.8707458Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8707548Z               "line": 81
2026-06-15T10:02:42.8707624Z             },
2026-06-15T10:02:42.8707715Z             {
2026-06-15T10:02:42.8707825Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8707914Z               "line": 159
2026-06-15T10:02:42.8707991Z             },
2026-06-15T10:02:42.8708074Z             {
2026-06-15T10:02:42.8708196Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8708292Z               "line": 175
2026-06-15T10:02:42.8708384Z             },
2026-06-15T10:02:42.8708474Z             {
2026-06-15T10:02:42.8708586Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-15T10:02:42.8708681Z               "line": 190
2026-06-15T10:02:42.8708758Z             }
2026-06-15T10:02:42.8708852Z           ]
2026-06-15T10:02:42.8708927Z         },
2026-06-15T10:02:42.8709095Z         "int": {
2026-06-15T10:02:42.8709199Z           "complete": false,
2026-06-15T10:02:42.8709284Z           "evidence": []
2026-06-15T10:02:42.8709371Z         },
2026-06-15T10:02:42.8709461Z         "unit": {
2026-06-15T10:02:42.8709585Z           "complete": true,
2026-06-15T10:02:42.8709677Z           "evidence": [
2026-06-15T10:02:42.8709767Z             {
2026-06-15T10:02:42.8709881Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T10:02:42.8709962Z               "line": 402
2026-06-15T10:02:42.8710053Z             }
2026-06-15T10:02:42.8710133Z           ]
2026-06-15T10:02:42.8710214Z         }
2026-06-15T10:02:42.8710291Z       }
2026-06-15T10:02:42.8710368Z     },
2026-06-15T10:02:42.8710463Z     {
2026-06-15T10:02:42.8710553Z       "id": "REQ-NET-3",
2026-06-15T10:02:42.8710739Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-15T10:02:42.8710825Z       "requiredStages": [
2026-06-15T10:02:42.8710911Z         "impl",
2026-06-15T10:02:42.8710988Z         "unit"
2026-06-15T10:02:42.8711064Z       ],
2026-06-15T10:02:42.8711159Z       "stages": {
2026-06-15T10:02:42.8711241Z         "doc": {
2026-06-15T10:02:42.8711341Z           "complete": false,
2026-06-15T10:02:42.8711435Z           "evidence": []
2026-06-15T10:02:42.8711525Z         },
2026-06-15T10:02:42.8711601Z         "impl": {
2026-06-15T10:02:42.8711698Z           "complete": true,
2026-06-15T10:02:42.8711791Z           "evidence": [
2026-06-15T10:02:42.8711872Z             {
2026-06-15T10:02:42.8711993Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T10:02:42.8712088Z               "line": 39
2026-06-15T10:02:42.8712173Z             },
2026-06-15T10:02:42.8712251Z             {
2026-06-15T10:02:42.8712370Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T10:02:42.8712469Z               "line": 182
2026-06-15T10:02:42.8712546Z             },
2026-06-15T10:02:42.8712632Z             {
2026-06-15T10:02:42.8712745Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-15T10:02:42.8712846Z               "line": 333
2026-06-15T10:02:42.8712923Z             },
2026-06-15T10:02:42.8713008Z             {
2026-06-15T10:02:42.8713127Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T10:02:42.8713209Z               "line": 36
2026-06-15T10:02:42.8713290Z             },
2026-06-15T10:02:42.8713375Z             {
2026-06-15T10:02:42.8713500Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.8713591Z               "line": 158
2026-06-15T10:02:42.8713774Z             },
2026-06-15T10:02:42.8713856Z             {
2026-06-15T10:02:42.8713977Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.8714163Z               "line": 212
2026-06-15T10:02:42.8714240Z             },
2026-06-15T10:02:42.8714320Z             {
2026-06-15T10:02:42.8714440Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.8714536Z               "line": 233
2026-06-15T10:02:42.8714630Z             },
2026-06-15T10:02:42.8714707Z             {
2026-06-15T10:02:42.8714822Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.8714912Z               "line": 291
2026-06-15T10:02:42.8715007Z             },
2026-06-15T10:02:42.8715079Z             {
2026-06-15T10:02:42.8715198Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.8715293Z               "line": 310
2026-06-15T10:02:42.8715369Z             },
2026-06-15T10:02:42.8715456Z             {
2026-06-15T10:02:42.8715570Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.8715660Z               "line": 348
2026-06-15T10:02:42.8715742Z             },
2026-06-15T10:02:42.8715823Z             {
2026-06-15T10:02:42.8715947Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.8716038Z               "line": 393
2026-06-15T10:02:42.8716129Z             },
2026-06-15T10:02:42.8716213Z             {
2026-06-15T10:02:42.8716333Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.8716430Z               "line": 406
2026-06-15T10:02:42.8716504Z             },
2026-06-15T10:02:42.8716599Z             {
2026-06-15T10:02:42.8716713Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T10:02:42.8716807Z               "line": 29
2026-06-15T10:02:42.8716892Z             },
2026-06-15T10:02:42.8716977Z             {
2026-06-15T10:02:42.8717098Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T10:02:42.8717183Z               "line": 72
2026-06-15T10:02:42.8717268Z             },
2026-06-15T10:02:42.8717350Z             {
2026-06-15T10:02:42.8717470Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T10:02:42.8717564Z               "line": 123
2026-06-15T10:02:42.8717655Z             }
2026-06-15T10:02:42.8717746Z           ]
2026-06-15T10:02:42.8717822Z         },
2026-06-15T10:02:42.8717912Z         "int": {
2026-06-15T10:02:42.8718004Z           "complete": false,
2026-06-15T10:02:42.8718098Z           "evidence": []
2026-06-15T10:02:42.8718175Z         },
2026-06-15T10:02:42.8718265Z         "unit": {
2026-06-15T10:02:42.8718361Z           "complete": true,
2026-06-15T10:02:42.8718447Z           "evidence": [
2026-06-15T10:02:42.8718532Z             {
2026-06-15T10:02:42.8718634Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T10:02:42.8718728Z               "line": 223
2026-06-15T10:02:42.8718813Z             },
2026-06-15T10:02:42.8718895Z             {
2026-06-15T10:02:42.8719095Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T10:02:42.8719194Z               "line": 351
2026-06-15T10:02:42.8719275Z             },
2026-06-15T10:02:42.8719370Z             {
2026-06-15T10:02:42.8719487Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-15T10:02:42.8719573Z               "line": 504
2026-06-15T10:02:42.8719650Z             },
2026-06-15T10:02:42.8719731Z             {
2026-06-15T10:02:42.8719840Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T10:02:42.8719936Z               "line": 93
2026-06-15T10:02:42.8720008Z             },
2026-06-15T10:02:42.8720084Z             {
2026-06-15T10:02:42.8720198Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-15T10:02:42.8720294Z               "line": 142
2026-06-15T10:02:42.8720384Z             },
2026-06-15T10:02:42.8720459Z             {
2026-06-15T10:02:42.8720585Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T10:02:42.8720675Z               "line": 315
2026-06-15T10:02:42.8720866Z             },
2026-06-15T10:02:42.8720952Z             {
2026-06-15T10:02:42.8721071Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T10:02:42.8721248Z               "line": 355
2026-06-15T10:02:42.8721328Z             },
2026-06-15T10:02:42.8721409Z             {
2026-06-15T10:02:42.8721525Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-15T10:02:42.8721619Z               "line": 494
2026-06-15T10:02:42.8721695Z             }
2026-06-15T10:02:42.8721772Z           ]
2026-06-15T10:02:42.8721863Z         }
2026-06-15T10:02:42.8721943Z       }
2026-06-15T10:02:42.8722032Z     },
2026-06-15T10:02:42.8722108Z     {
2026-06-15T10:02:42.8722210Z       "id": "REQ-NODE-IDENTITY",
2026-06-15T10:02:42.8722432Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-15T10:02:42.8722539Z       "requiredStages": [
2026-06-15T10:02:42.8722629Z         "impl",
2026-06-15T10:02:42.8722704Z         "unit"
2026-06-15T10:02:42.8722801Z       ],
2026-06-15T10:02:42.8722886Z       "stages": {
2026-06-15T10:02:42.8722967Z         "doc": {
2026-06-15T10:02:42.8723062Z           "complete": false,
2026-06-15T10:02:42.8723164Z           "evidence": []
2026-06-15T10:02:42.8723243Z         },
2026-06-15T10:02:42.8723324Z         "impl": {
2026-06-15T10:02:42.8723421Z           "complete": true,
2026-06-15T10:02:42.8723502Z           "evidence": [
2026-06-15T10:02:42.8723587Z             {
2026-06-15T10:02:42.8723711Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T10:02:42.8723803Z               "line": 60
2026-06-15T10:02:42.8723882Z             },
2026-06-15T10:02:42.8723959Z             {
2026-06-15T10:02:42.8724074Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T10:02:42.8724165Z               "line": 68
2026-06-15T10:02:42.8724240Z             },
2026-06-15T10:02:42.8724320Z             {
2026-06-15T10:02:42.8724440Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T10:02:42.8724537Z               "line": 86
2026-06-15T10:02:42.8724614Z             },
2026-06-15T10:02:42.8724695Z             {
2026-06-15T10:02:42.8724805Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T10:02:42.8724900Z               "line": 120
2026-06-15T10:02:42.8724985Z             },
2026-06-15T10:02:42.8725057Z             {
2026-06-15T10:02:42.8725177Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T10:02:42.8725257Z               "line": 127
2026-06-15T10:02:42.8725343Z             },
2026-06-15T10:02:42.8725429Z             {
2026-06-15T10:02:42.8725557Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T10:02:42.8725649Z               "line": 143
2026-06-15T10:02:42.8725725Z             },
2026-06-15T10:02:42.8725816Z             {
2026-06-15T10:02:42.8725925Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T10:02:42.8726016Z               "line": 16
2026-06-15T10:02:42.8726111Z             }
2026-06-15T10:02:42.8726201Z           ]
2026-06-15T10:02:42.8726288Z         },
2026-06-15T10:02:42.8726365Z         "int": {
2026-06-15T10:02:42.8726463Z           "complete": false,
2026-06-15T10:02:42.8726559Z           "evidence": []
2026-06-15T10:02:42.8726646Z         },
2026-06-15T10:02:42.8726735Z         "unit": {
2026-06-15T10:02:42.8726831Z           "complete": true,
2026-06-15T10:02:42.8726923Z           "evidence": [
2026-06-15T10:02:42.8727004Z             {
2026-06-15T10:02:42.8727121Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T10:02:42.8727211Z               "line": 199
2026-06-15T10:02:42.8727302Z             },
2026-06-15T10:02:42.8727377Z             {
2026-06-15T10:02:42.8727495Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T10:02:42.8727590Z               "line": 218
2026-06-15T10:02:42.8727672Z             },
2026-06-15T10:02:42.8730200Z             {
2026-06-15T10:02:42.8730353Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T10:02:42.8730591Z               "line": 234
2026-06-15T10:02:42.8730681Z             },
2026-06-15T10:02:42.8730758Z             {
2026-06-15T10:02:42.8730892Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-15T10:02:42.8731092Z               "line": 256
2026-06-15T10:02:42.8731183Z             },
2026-06-15T10:02:42.8731258Z             {
2026-06-15T10:02:42.8731383Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T10:02:42.8731469Z               "line": 124
2026-06-15T10:02:42.8731550Z             },
2026-06-15T10:02:42.8731635Z             {
2026-06-15T10:02:42.8731746Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T10:02:42.8731841Z               "line": 140
2026-06-15T10:02:42.8731916Z             },
2026-06-15T10:02:42.8731997Z             {
2026-06-15T10:02:42.8732108Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-15T10:02:42.8732202Z               "line": 155
2026-06-15T10:02:42.8732284Z             }
2026-06-15T10:02:42.8732366Z           ]
2026-06-15T10:02:42.8732461Z         }
2026-06-15T10:02:42.8732541Z       }
2026-06-15T10:02:42.8732621Z     },
2026-06-15T10:02:42.8732702Z     {
2026-06-15T10:02:42.8732793Z       "id": "REQ-NOTIF-1",
2026-06-15T10:02:42.8733156Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-15T10:02:42.8733250Z       "requiredStages": [
2026-06-15T10:02:42.8733342Z         "impl",
2026-06-15T10:02:42.8733414Z         "unit",
2026-06-15T10:02:42.8733495Z         "int"
2026-06-15T10:02:42.8733584Z       ],
2026-06-15T10:02:42.8733671Z       "stages": {
2026-06-15T10:02:42.8733752Z         "doc": {
2026-06-15T10:02:42.8733847Z           "complete": false,
2026-06-15T10:02:42.8733937Z           "evidence": []
2026-06-15T10:02:42.8734024Z         },
2026-06-15T10:02:42.8734109Z         "impl": {
2026-06-15T10:02:42.8734204Z           "complete": true,
2026-06-15T10:02:42.8734301Z           "evidence": [
2026-06-15T10:02:42.8734391Z             {
2026-06-15T10:02:42.8734514Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T10:02:42.8734610Z               "line": 514
2026-06-15T10:02:42.8734692Z             },
2026-06-15T10:02:42.8734771Z             {
2026-06-15T10:02:42.8734889Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8734980Z               "line": 30
2026-06-15T10:02:42.8735070Z             },
2026-06-15T10:02:42.8735150Z             {
2026-06-15T10:02:42.8735274Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8735360Z               "line": 69
2026-06-15T10:02:42.8735440Z             },
2026-06-15T10:02:42.8735521Z             {
2026-06-15T10:02:42.8735642Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8735737Z               "line": 93
2026-06-15T10:02:42.8735812Z             },
2026-06-15T10:02:42.8735899Z             {
2026-06-15T10:02:42.8736008Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8736108Z               "line": 107
2026-06-15T10:02:42.8736199Z             },
2026-06-15T10:02:42.8736276Z             {
2026-06-15T10:02:42.8736399Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8736485Z               "line": 142
2026-06-15T10:02:42.8736572Z             },
2026-06-15T10:02:42.8736661Z             {
2026-06-15T10:02:42.8736771Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8736862Z               "line": 187
2026-06-15T10:02:42.8736943Z             },
2026-06-15T10:02:42.8737028Z             {
2026-06-15T10:02:42.8737129Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8737226Z               "line": 258
2026-06-15T10:02:42.8737300Z             },
2026-06-15T10:02:42.8737391Z             {
2026-06-15T10:02:42.8737506Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8737596Z               "line": 372
2026-06-15T10:02:42.8737686Z             },
2026-06-15T10:02:42.8737852Z             {
2026-06-15T10:02:42.8737969Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8738050Z               "line": 479
2026-06-15T10:02:42.8738194Z             },
2026-06-15T10:02:42.8738280Z             {
2026-06-15T10:02:42.8738398Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T10:02:42.8738490Z               "line": 24
2026-06-15T10:02:42.8738575Z             },
2026-06-15T10:02:42.8738655Z             {
2026-06-15T10:02:42.8738771Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T10:02:42.8738861Z               "line": 34
2026-06-15T10:02:42.8739037Z             },
2026-06-15T10:02:42.8739124Z             {
2026-06-15T10:02:42.8739242Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T10:02:42.8739328Z               "line": 60
2026-06-15T10:02:42.8739429Z             },
2026-06-15T10:02:42.8739510Z             {
2026-06-15T10:02:42.8739628Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T10:02:42.8739725Z               "line": 82
2026-06-15T10:02:42.8739810Z             },
2026-06-15T10:02:42.8739900Z             {
2026-06-15T10:02:42.8740020Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T10:02:42.8740111Z               "line": 94
2026-06-15T10:02:42.8740187Z             },
2026-06-15T10:02:42.8740280Z             {
2026-06-15T10:02:42.8740395Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T10:02:42.8740480Z               "line": 96
2026-06-15T10:02:42.8740565Z             },
2026-06-15T10:02:42.8740640Z             {
2026-06-15T10:02:42.8740770Z               "path": "crates/spt-daemon/src/pump/notif.rs",
2026-06-15T10:02:42.8740856Z               "line": 44
2026-06-15T10:02:42.8740940Z             },
2026-06-15T10:02:42.8741027Z             {
2026-06-15T10:02:42.8741147Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T10:02:42.8741241Z               "line": 20
2026-06-15T10:02:42.8741318Z             },
2026-06-15T10:02:42.8741409Z             {
2026-06-15T10:02:42.8741523Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T10:02:42.8741608Z               "line": 30
2026-06-15T10:02:42.8741695Z             },
2026-06-15T10:02:42.8741781Z             {
2026-06-15T10:02:42.8741890Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T10:02:42.8741971Z               "line": 50
2026-06-15T10:02:42.8742053Z             },
2026-06-15T10:02:42.8742143Z             {
2026-06-15T10:02:42.8742257Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T10:02:42.8742353Z               "line": 28
2026-06-15T10:02:42.8742439Z             },
2026-06-15T10:02:42.8742520Z             {
2026-06-15T10:02:42.8742621Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T10:02:42.8742716Z               "line": 126
2026-06-15T10:02:42.8742810Z             },
2026-06-15T10:02:42.8742887Z             {
2026-06-15T10:02:42.8742997Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T10:02:42.8743082Z               "line": 161
2026-06-15T10:02:42.8743172Z             },
2026-06-15T10:02:42.8743253Z             {
2026-06-15T10:02:42.8743368Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T10:02:42.8743472Z               "line": 202
2026-06-15T10:02:42.8743543Z             },
2026-06-15T10:02:42.8743635Z             {
2026-06-15T10:02:42.8743745Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T10:02:42.8743839Z               "line": 213
2026-06-15T10:02:42.8743916Z             },
2026-06-15T10:02:42.8744007Z             {
2026-06-15T10:02:42.8744120Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T10:02:42.8744206Z               "line": 238
2026-06-15T10:02:42.8744293Z             },
2026-06-15T10:02:42.8744378Z             {
2026-06-15T10:02:42.8744492Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T10:02:42.8744584Z               "line": 261
2026-06-15T10:02:42.8744669Z             },
2026-06-15T10:02:42.8744846Z             {
2026-06-15T10:02:42.8744965Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.8745060Z               "line": 82
2026-06-15T10:02:42.8745223Z             }
2026-06-15T10:02:42.8745313Z           ]
2026-06-15T10:02:42.8745388Z         },
2026-06-15T10:02:42.8745468Z         "int": {
2026-06-15T10:02:42.8745564Z           "complete": true,
2026-06-15T10:02:42.8745653Z           "evidence": [
2026-06-15T10:02:42.8745743Z             {
2026-06-15T10:02:42.8745863Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T10:02:42.8745959Z               "line": 285
2026-06-15T10:02:42.8746038Z             },
2026-06-15T10:02:42.8746115Z             {
2026-06-15T10:02:42.8746235Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-15T10:02:42.8746325Z               "line": 102
2026-06-15T10:02:42.8746415Z             },
2026-06-15T10:02:42.8746493Z             {
2026-06-15T10:02:42.8746621Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8746706Z               "line": 615
2026-06-15T10:02:42.8746793Z             },
2026-06-15T10:02:42.8746883Z             {
2026-06-15T10:02:42.8747001Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8747088Z               "line": 1008
2026-06-15T10:02:42.8747170Z             }
2026-06-15T10:02:42.8747250Z           ]
2026-06-15T10:02:42.8747326Z         },
2026-06-15T10:02:42.8747413Z         "unit": {
2026-06-15T10:02:42.8747503Z           "complete": true,
2026-06-15T10:02:42.8747598Z           "evidence": [
2026-06-15T10:02:42.8747689Z             {
2026-06-15T10:02:42.8747804Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8747898Z               "line": 572
2026-06-15T10:02:42.8747975Z             },
2026-06-15T10:02:42.8748052Z             {
2026-06-15T10:02:42.8748170Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8748255Z               "line": 636
2026-06-15T10:02:42.8748345Z             },
2026-06-15T10:02:42.8748427Z             {
2026-06-15T10:02:42.8748529Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8748624Z               "line": 740
2026-06-15T10:02:42.8748710Z             },
2026-06-15T10:02:42.8748792Z             {
2026-06-15T10:02:42.8748906Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8749055Z               "line": 772
2026-06-15T10:02:42.8749135Z             },
2026-06-15T10:02:42.8749230Z             {
2026-06-15T10:02:42.8749345Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8749435Z               "line": 840
2026-06-15T10:02:42.8749512Z             },
2026-06-15T10:02:42.8749592Z             {
2026-06-15T10:02:42.8749703Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8749788Z               "line": 898
2026-06-15T10:02:42.8749879Z             },
2026-06-15T10:02:42.8749955Z             {
2026-06-15T10:02:42.8750056Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8750155Z               "line": 1173
2026-06-15T10:02:42.8750236Z             },
2026-06-15T10:02:42.8750328Z             {
2026-06-15T10:02:42.8750446Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T10:02:42.8750537Z               "line": 157
2026-06-15T10:02:42.8750628Z             },
2026-06-15T10:02:42.8750704Z             {
2026-06-15T10:02:42.8750822Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T10:02:42.8750902Z               "line": 250
2026-06-15T10:02:42.8750989Z             },
2026-06-15T10:02:42.8751068Z             {
2026-06-15T10:02:42.8751191Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-15T10:02:42.8751277Z               "line": 273
2026-06-15T10:02:42.8751350Z             },
2026-06-15T10:02:42.8751439Z             {
2026-06-15T10:02:42.8751558Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T10:02:42.8751655Z               "line": 355
2026-06-15T10:02:42.8751839Z             },
2026-06-15T10:02:42.8751931Z             {
2026-06-15T10:02:42.8752050Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-15T10:02:42.8752222Z               "line": 392
2026-06-15T10:02:42.8752307Z             },
2026-06-15T10:02:42.8752388Z             {
2026-06-15T10:02:42.8752517Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-15T10:02:42.8752608Z               "line": 131
2026-06-15T10:02:42.8752689Z             },
2026-06-15T10:02:42.8752770Z             {
2026-06-15T10:02:42.8752885Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T10:02:42.8752979Z               "line": 72
2026-06-15T10:02:42.8753051Z             },
2026-06-15T10:02:42.8753137Z             {
2026-06-15T10:02:42.8753252Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-15T10:02:42.8753337Z               "line": 97
2026-06-15T10:02:42.8753418Z             },
2026-06-15T10:02:42.8753500Z             {
2026-06-15T10:02:42.8753605Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T10:02:42.8753698Z               "line": 379
2026-06-15T10:02:42.8753779Z             },
2026-06-15T10:02:42.8753865Z             {
2026-06-15T10:02:42.8753980Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T10:02:42.8754075Z               "line": 417
2026-06-15T10:02:42.8754161Z             },
2026-06-15T10:02:42.8754247Z             {
2026-06-15T10:02:42.8754361Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T10:02:42.8754452Z               "line": 433
2026-06-15T10:02:42.8754534Z             },
2026-06-15T10:02:42.8754615Z             {
2026-06-15T10:02:42.8754723Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T10:02:42.8754801Z               "line": 472
2026-06-15T10:02:42.8754882Z             },
2026-06-15T10:02:42.8754958Z             {
2026-06-15T10:02:42.8755072Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T10:02:42.8755168Z               "line": 489
2026-06-15T10:02:42.8755257Z             },
2026-06-15T10:02:42.8755353Z             {
2026-06-15T10:02:42.8755464Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T10:02:42.8755563Z               "line": 517
2026-06-15T10:02:42.8755639Z             },
2026-06-15T10:02:42.8755730Z             {
2026-06-15T10:02:42.8755840Z               "path": "crates/spt-store/src/notif.rs",
2026-06-15T10:02:42.8755929Z               "line": 548
2026-06-15T10:02:42.8756019Z             },
2026-06-15T10:02:42.8756153Z             {
2026-06-15T10:02:42.8756275Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.8756360Z               "line": 621
2026-06-15T10:02:42.8756442Z             }
2026-06-15T10:02:42.8756524Z           ]
2026-06-15T10:02:42.8756642Z         }
2026-06-15T10:02:42.8756781Z       }
2026-06-15T10:02:42.8756918Z     },
2026-06-15T10:02:42.8757038Z     {
2026-06-15T10:02:42.8757218Z       "id": "REQ-NOTIF-2",
2026-06-15T10:02:42.8757643Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-15T10:02:42.8757772Z       "requiredStages": [
2026-06-15T10:02:42.8757886Z         "doc",
2026-06-15T10:02:42.8757992Z         "impl",
2026-06-15T10:02:42.8758073Z         "unit",
2026-06-15T10:02:42.8758163Z         "int"
2026-06-15T10:02:42.8758239Z       ],
2026-06-15T10:02:42.8758336Z       "stages": {
2026-06-15T10:02:42.8758430Z         "doc": {
2026-06-15T10:02:42.8758525Z           "complete": true,
2026-06-15T10:02:42.8758617Z           "evidence": [
2026-06-15T10:02:42.8758703Z             {
2026-06-15T10:02:42.8758796Z               "path": "CONTEXT.md",
2026-06-15T10:02:42.8758876Z               "line": 451
2026-06-15T10:02:42.8759052Z             },
2026-06-15T10:02:42.8759142Z             {
2026-06-15T10:02:42.8759237Z               "path": "docs/MANIFEST.md",
2026-06-15T10:02:42.8759328Z               "line": 74
2026-06-15T10:02:42.8759409Z             }
2026-06-15T10:02:42.8759494Z           ]
2026-06-15T10:02:42.8759771Z         },
2026-06-15T10:02:42.8759866Z         "impl": {
2026-06-15T10:02:42.8759963Z           "complete": true,
2026-06-15T10:02:42.8760053Z           "evidence": [
2026-06-15T10:02:42.8760220Z             {
2026-06-15T10:02:42.8760338Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8760434Z               "line": 287
2026-06-15T10:02:42.8760515Z             },
2026-06-15T10:02:42.8760606Z             {
2026-06-15T10:02:42.8760725Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8760815Z               "line": 301
2026-06-15T10:02:42.8760907Z             },
2026-06-15T10:02:42.8760982Z             {
2026-06-15T10:02:42.8761102Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8761184Z               "line": 326
2026-06-15T10:02:42.8761269Z             },
2026-06-15T10:02:42.8761344Z             {
2026-06-15T10:02:42.8761462Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.8761549Z               "line": 199
2026-06-15T10:02:42.8761638Z             },
2026-06-15T10:02:42.8761723Z             {
2026-06-15T10:02:42.8761842Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.8761943Z               "line": 91
2026-06-15T10:02:42.8762028Z             },
2026-06-15T10:02:42.8762099Z             {
2026-06-15T10:02:42.8762205Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8762300Z               "line": 1957
2026-06-15T10:02:42.8762380Z             },
2026-06-15T10:02:42.8762472Z             {
2026-06-15T10:02:42.8762572Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8762657Z               "line": 2006
2026-06-15T10:02:42.8762743Z             },
2026-06-15T10:02:42.8762834Z             {
2026-06-15T10:02:42.8762929Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8763024Z               "line": 2085
2026-06-15T10:02:42.8763116Z             },
2026-06-15T10:02:42.8763192Z             {
2026-06-15T10:02:42.8763292Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8763387Z               "line": 2124
2026-06-15T10:02:42.8763473Z             }
2026-06-15T10:02:42.8763554Z           ]
2026-06-15T10:02:42.8763640Z         },
2026-06-15T10:02:42.8763731Z         "int": {
2026-06-15T10:02:42.8763817Z           "complete": true,
2026-06-15T10:02:42.8763902Z           "evidence": [
2026-06-15T10:02:42.8763988Z             {
2026-06-15T10:02:42.8764117Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8764207Z               "line": 741
2026-06-15T10:02:42.8764292Z             },
2026-06-15T10:02:42.8764382Z             {
2026-06-15T10:02:42.8764503Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8764597Z               "line": 1161
2026-06-15T10:02:42.8764673Z             }
2026-06-15T10:02:42.8764750Z           ]
2026-06-15T10:02:42.8764826Z         },
2026-06-15T10:02:42.8764921Z         "unit": {
2026-06-15T10:02:42.8765017Z           "complete": true,
2026-06-15T10:02:42.8765103Z           "evidence": [
2026-06-15T10:02:42.8765184Z             {
2026-06-15T10:02:42.8765303Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8765408Z               "line": 1022
2026-06-15T10:02:42.8765484Z             },
2026-06-15T10:02:42.8765574Z             {
2026-06-15T10:02:42.8765695Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8765785Z               "line": 1090
2026-06-15T10:02:42.8765880Z             },
2026-06-15T10:02:42.8765956Z             {
2026-06-15T10:02:42.8766066Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8766151Z               "line": 6604
2026-06-15T10:02:42.8766242Z             },
2026-06-15T10:02:42.8766339Z             {
2026-06-15T10:02:42.8766437Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8766537Z               "line": 6659
2026-06-15T10:02:42.8766613Z             }
2026-06-15T10:02:42.8766704Z           ]
2026-06-15T10:02:42.8766787Z         }
2026-06-15T10:02:42.8766959Z       }
2026-06-15T10:02:42.8767055Z     },
2026-06-15T10:02:42.8767130Z     {
2026-06-15T10:02:42.8767225Z       "id": "REQ-PAIR-1",
2026-06-15T10:02:42.8767403Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-15T10:02:42.8767507Z       "requiredStages": [
2026-06-15T10:02:42.8767584Z         "impl",
2026-06-15T10:02:42.8767679Z         "unit",
2026-06-15T10:02:42.8767774Z         "int"
2026-06-15T10:02:42.8767850Z       ],
2026-06-15T10:02:42.8767947Z       "stages": {
2026-06-15T10:02:42.8768022Z         "doc": {
2026-06-15T10:02:42.8768121Z           "complete": false,
2026-06-15T10:02:42.8768213Z           "evidence": []
2026-06-15T10:02:42.8768295Z         },
2026-06-15T10:02:42.8768390Z         "impl": {
2026-06-15T10:02:42.8768484Z           "complete": true,
2026-06-15T10:02:42.8768576Z           "evidence": [
2026-06-15T10:02:42.8768656Z             {
2026-06-15T10:02:42.8768794Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T10:02:42.8768886Z               "line": 27
2026-06-15T10:02:42.8769076Z             },
2026-06-15T10:02:42.8769172Z             {
2026-06-15T10:02:42.8769300Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T10:02:42.8769399Z               "line": 88
2026-06-15T10:02:42.8769490Z             },
2026-06-15T10:02:42.8769580Z             {
2026-06-15T10:02:42.8769702Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T10:02:42.8769797Z               "line": 110
2026-06-15T10:02:42.8769888Z             },
2026-06-15T10:02:42.8769969Z             {
2026-06-15T10:02:42.8770102Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T10:02:42.8770189Z               "line": 153
2026-06-15T10:02:42.8770275Z             },
2026-06-15T10:02:42.8770355Z             {
2026-06-15T10:02:42.8770475Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T10:02:42.8770570Z               "line": 182
2026-06-15T10:02:42.8770650Z             },
2026-06-15T10:02:42.8770751Z             {
2026-06-15T10:02:42.8770866Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T10:02:42.8770965Z               "line": 29
2026-06-15T10:02:42.8771046Z             },
2026-06-15T10:02:42.8771138Z             {
2026-06-15T10:02:42.8771285Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-15T10:02:42.8771361Z               "line": 31
2026-06-15T10:02:42.8771453Z             },
2026-06-15T10:02:42.8771528Z             {
2026-06-15T10:02:42.8771652Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T10:02:42.8771744Z               "line": 44
2026-06-15T10:02:42.8771829Z             },
2026-06-15T10:02:42.8771923Z             {
2026-06-15T10:02:42.8772042Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T10:02:42.8772142Z               "line": 171
2026-06-15T10:02:42.8772221Z             },
2026-06-15T10:02:42.8772306Z             {
2026-06-15T10:02:42.8772440Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T10:02:42.8772536Z               "line": 376
2026-06-15T10:02:42.8772630Z             }
2026-06-15T10:02:42.8772712Z           ]
2026-06-15T10:02:42.8772794Z         },
2026-06-15T10:02:42.8772874Z         "int": {
2026-06-15T10:02:42.8772979Z           "complete": true,
2026-06-15T10:02:42.8773075Z           "evidence": [
2026-06-15T10:02:42.8773151Z             {
2026-06-15T10:02:42.8773283Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8773376Z               "line": 576
2026-06-15T10:02:42.8773456Z             },
2026-06-15T10:02:42.8773532Z             {
2026-06-15T10:02:42.8773656Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8773752Z               "line": 793
2026-06-15T10:02:42.8773828Z             }
2026-06-15T10:02:42.8773928Z           ]
2026-06-15T10:02:42.8774006Z         },
2026-06-15T10:02:42.8774099Z         "unit": {
2026-06-15T10:02:42.8774195Z           "complete": true,
2026-06-15T10:02:42.8774400Z           "evidence": [
2026-06-15T10:02:42.8774485Z             {
2026-06-15T10:02:42.8774611Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T10:02:42.8774805Z               "line": 236
2026-06-15T10:02:42.8774880Z             },
2026-06-15T10:02:42.8774967Z             {
2026-06-15T10:02:42.8775086Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-15T10:02:42.8775185Z               "line": 349
2026-06-15T10:02:42.8775272Z             },
2026-06-15T10:02:42.8775358Z             {
2026-06-15T10:02:42.8775486Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T10:02:42.8775582Z               "line": 194
2026-06-15T10:02:42.8775673Z             },
2026-06-15T10:02:42.8775754Z             {
2026-06-15T10:02:42.8775882Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T10:02:42.8775978Z               "line": 216
2026-06-15T10:02:42.8776063Z             },
2026-06-15T10:02:42.8776158Z             {
2026-06-15T10:02:42.8776283Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T10:02:42.8776382Z               "line": 230
2026-06-15T10:02:42.8776468Z             },
2026-06-15T10:02:42.8776560Z             {
2026-06-15T10:02:42.8776692Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T10:02:42.8776773Z               "line": 242
2026-06-15T10:02:42.8776865Z             },
2026-06-15T10:02:42.8776951Z             {
2026-06-15T10:02:42.8777078Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T10:02:42.8777163Z               "line": 256
2026-06-15T10:02:42.8777254Z             },
2026-06-15T10:02:42.8777343Z             {
2026-06-15T10:02:42.8777461Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T10:02:42.8777562Z               "line": 270
2026-06-15T10:02:42.8777639Z             },
2026-06-15T10:02:42.8777718Z             {
2026-06-15T10:02:42.8777843Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T10:02:42.8777943Z               "line": 277
2026-06-15T10:02:42.8778033Z             },
2026-06-15T10:02:42.8778114Z             {
2026-06-15T10:02:42.8778239Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-15T10:02:42.8778329Z               "line": 295
2026-06-15T10:02:42.8778424Z             },
2026-06-15T10:02:42.8778516Z             {
2026-06-15T10:02:42.8778644Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T10:02:42.8778739Z               "line": 968
2026-06-15T10:02:42.8778821Z             },
2026-06-15T10:02:42.8778911Z             {
2026-06-15T10:02:42.8779103Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T10:02:42.8779202Z               "line": 1051
2026-06-15T10:02:42.8779293Z             },
2026-06-15T10:02:42.8779374Z             {
2026-06-15T10:02:42.8779499Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T10:02:42.8779587Z               "line": 1121
2026-06-15T10:02:42.8779684Z             },
2026-06-15T10:02:42.8779771Z             {
2026-06-15T10:02:42.8779888Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T10:02:42.8779992Z               "line": 1182
2026-06-15T10:02:42.8780069Z             },
2026-06-15T10:02:42.8780150Z             {
2026-06-15T10:02:42.8780271Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T10:02:42.8780367Z               "line": 1238
2026-06-15T10:02:42.8780448Z             },
2026-06-15T10:02:42.8780529Z             {
2026-06-15T10:02:42.8780652Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T10:02:42.8780735Z               "line": 1457
2026-06-15T10:02:42.8780830Z             }
2026-06-15T10:02:42.8780910Z           ]
2026-06-15T10:02:42.8781001Z         }
2026-06-15T10:02:42.8781083Z       }
2026-06-15T10:02:42.8781164Z     },
2026-06-15T10:02:42.8781253Z     {
2026-06-15T10:02:42.8781345Z       "id": "REQ-PAIR-2",
2026-06-15T10:02:42.8781587Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-15T10:02:42.8781694Z       "requiredStages": [],
2026-06-15T10:02:42.8781778Z       "stages": {
2026-06-15T10:02:42.8781940Z         "doc": {
2026-06-15T10:02:42.8782037Z           "complete": false,
2026-06-15T10:02:42.8782135Z           "evidence": []
2026-06-15T10:02:42.8782212Z         },
2026-06-15T10:02:42.8782304Z         "impl": {
2026-06-15T10:02:42.8782399Z           "complete": false,
2026-06-15T10:02:42.8782483Z           "evidence": []
2026-06-15T10:02:42.8782568Z         },
2026-06-15T10:02:42.8782664Z         "int": {
2026-06-15T10:02:42.8782767Z           "complete": false,
2026-06-15T10:02:42.8782861Z           "evidence": []
2026-06-15T10:02:42.8782948Z         },
2026-06-15T10:02:42.8783030Z         "unit": {
2026-06-15T10:02:42.8783129Z           "complete": false,
2026-06-15T10:02:42.8783219Z           "evidence": []
2026-06-15T10:02:42.8783311Z         }
2026-06-15T10:02:42.8783406Z       }
2026-06-15T10:02:42.8783491Z     },
2026-06-15T10:02:42.8783582Z     {
2026-06-15T10:02:42.8783673Z       "id": "REQ-PAIR-3",
2026-06-15T10:02:42.8783815Z       "title": "Fetch current pairing code from any paired node",
2026-06-15T10:02:42.8783917Z       "requiredStages": [
2026-06-15T10:02:42.8784011Z         "impl",
2026-06-15T10:02:42.8784102Z         "unit"
2026-06-15T10:02:42.8784187Z       ],
2026-06-15T10:02:42.8784284Z       "stages": {
2026-06-15T10:02:42.8784369Z         "doc": {
2026-06-15T10:02:42.8784469Z           "complete": false,
2026-06-15T10:02:42.8784556Z           "evidence": []
2026-06-15T10:02:42.8784650Z         },
2026-06-15T10:02:42.8784741Z         "impl": {
2026-06-15T10:02:42.8784837Z           "complete": true,
2026-06-15T10:02:42.8784942Z           "evidence": [
2026-06-15T10:02:42.8785026Z             {
2026-06-15T10:02:42.8785137Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8785219Z               "line": 2819
2026-06-15T10:02:42.8785303Z             },
2026-06-15T10:02:42.8785397Z             {
2026-06-15T10:02:42.8785507Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8785608Z               "line": 2888
2026-06-15T10:02:42.8785689Z             },
2026-06-15T10:02:42.8785784Z             {
2026-06-15T10:02:42.8785880Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8785966Z               "line": 3269
2026-06-15T10:02:42.8786064Z             },
2026-06-15T10:02:42.8786147Z             {
2026-06-15T10:02:42.8786256Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8786351Z               "line": 4514
2026-06-15T10:02:42.8786442Z             }
2026-06-15T10:02:42.8786528Z           ]
2026-06-15T10:02:42.8786623Z         },
2026-06-15T10:02:42.8786718Z         "int": {
2026-06-15T10:02:42.8786815Z           "complete": false,
2026-06-15T10:02:42.8786914Z           "evidence": []
2026-06-15T10:02:42.8786990Z         },
2026-06-15T10:02:42.8787081Z         "unit": {
2026-06-15T10:02:42.8787177Z           "complete": true,
2026-06-15T10:02:42.8787275Z           "evidence": [
2026-06-15T10:02:42.8787372Z             {
2026-06-15T10:02:42.8787468Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8787576Z               "line": 8224
2026-06-15T10:02:42.8787662Z             },
2026-06-15T10:02:42.8787757Z             {
2026-06-15T10:02:42.8787856Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8787955Z               "line": 8439
2026-06-15T10:02:42.8788050Z             },
2026-06-15T10:02:42.8788127Z             {
2026-06-15T10:02:42.8788227Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8788312Z               "line": 9038
2026-06-15T10:02:42.8788394Z             },
2026-06-15T10:02:42.8788470Z             {
2026-06-15T10:02:42.8788575Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8788670Z               "line": 9057
2026-06-15T10:02:42.8788752Z             },
2026-06-15T10:02:42.8788842Z             {
2026-06-15T10:02:42.8789019Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8789265Z               "line": 9081
2026-06-15T10:02:42.8789353Z             },
2026-06-15T10:02:42.8789448Z             {
2026-06-15T10:02:42.8789653Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8789739Z               "line": 9100
2026-06-15T10:02:42.8789833Z             },
2026-06-15T10:02:42.8789919Z             {
2026-06-15T10:02:42.8790021Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8790115Z               "line": 9113
2026-06-15T10:02:42.8790200Z             },
2026-06-15T10:02:42.8790292Z             {
2026-06-15T10:02:42.8790397Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8790495Z               "line": 9122
2026-06-15T10:02:42.8790585Z             }
2026-06-15T10:02:42.8790672Z           ]
2026-06-15T10:02:42.8790756Z         }
2026-06-15T10:02:42.8790836Z       }
2026-06-15T10:02:42.8790927Z     },
2026-06-15T10:02:42.8791009Z     {
2026-06-15T10:02:42.8791103Z       "id": "REQ-PAIR-4",
2026-06-15T10:02:42.8791212Z       "title": "Subnet naming on first pairing",
2026-06-15T10:02:42.8791319Z       "requiredStages": [
2026-06-15T10:02:42.8791400Z         "impl",
2026-06-15T10:02:42.8791484Z         "unit"
2026-06-15T10:02:42.8791581Z       ],
2026-06-15T10:02:42.8791666Z       "stages": {
2026-06-15T10:02:42.8791761Z         "doc": {
2026-06-15T10:02:42.8791856Z           "complete": false,
2026-06-15T10:02:42.8791953Z           "evidence": []
2026-06-15T10:02:42.8792033Z         },
2026-06-15T10:02:42.8792128Z         "impl": {
2026-06-15T10:02:42.8792229Z           "complete": true,
2026-06-15T10:02:42.8792319Z           "evidence": [
2026-06-15T10:02:42.8792410Z             {
2026-06-15T10:02:42.8792530Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-15T10:02:42.8792630Z               "line": 174
2026-06-15T10:02:42.8792714Z             }
2026-06-15T10:02:42.8792810Z           ]
2026-06-15T10:02:42.8792888Z         },
2026-06-15T10:02:42.8792968Z         "int": {
2026-06-15T10:02:42.8793077Z           "complete": false,
2026-06-15T10:02:42.8793172Z           "evidence": []
2026-06-15T10:02:42.8793253Z         },
2026-06-15T10:02:42.8793336Z         "unit": {
2026-06-15T10:02:42.8793450Z           "complete": true,
2026-06-15T10:02:42.8793546Z           "evidence": [
2026-06-15T10:02:42.8793623Z             {
2026-06-15T10:02:42.8793764Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T10:02:42.8793852Z               "line": 1294
2026-06-15T10:02:42.8793942Z             }
2026-06-15T10:02:42.8794027Z           ]
2026-06-15T10:02:42.8798236Z         }
2026-06-15T10:02:42.8798350Z       }
2026-06-15T10:02:42.8798430Z     },
2026-06-15T10:02:42.8798515Z     {
2026-06-15T10:02:42.8798620Z       "id": "REQ-PAIR-5",
2026-06-15T10:02:42.8799026Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-15T10:02:42.8799116Z       "requiredStages": [
2026-06-15T10:02:42.8799206Z         "impl",
2026-06-15T10:02:42.8799317Z         "unit",
2026-06-15T10:02:42.8799402Z         "int"
2026-06-15T10:02:42.8799520Z       ],
2026-06-15T10:02:42.8799612Z       "stages": {
2026-06-15T10:02:42.8799702Z         "doc": {
2026-06-15T10:02:42.8799802Z           "complete": false,
2026-06-15T10:02:42.8799898Z           "evidence": []
2026-06-15T10:02:42.8799984Z         },
2026-06-15T10:02:42.8800070Z         "impl": {
2026-06-15T10:02:42.8800160Z           "complete": true,
2026-06-15T10:02:42.8800247Z           "evidence": [
2026-06-15T10:02:42.8800332Z             {
2026-06-15T10:02:42.8800465Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T10:02:42.8800557Z               "line": 44
2026-06-15T10:02:42.8800652Z             },
2026-06-15T10:02:42.8800742Z             {
2026-06-15T10:02:42.8800867Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T10:02:42.8800948Z               "line": 96
2026-06-15T10:02:42.8801036Z             },
2026-06-15T10:02:42.8801122Z             {
2026-06-15T10:02:42.8801396Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T10:02:42.8801497Z               "line": 107
2026-06-15T10:02:42.8801664Z             },
2026-06-15T10:02:42.8801749Z             {
2026-06-15T10:02:42.8801874Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T10:02:42.8801955Z               "line": 124
2026-06-15T10:02:42.8802030Z             },
2026-06-15T10:02:42.8802116Z             {
2026-06-15T10:02:42.8802240Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T10:02:42.8802331Z               "line": 155
2026-06-15T10:02:42.8802412Z             },
2026-06-15T10:02:42.8802499Z             {
2026-06-15T10:02:42.8802622Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T10:02:42.8802717Z               "line": 195
2026-06-15T10:02:42.8802794Z             },
2026-06-15T10:02:42.8802879Z             {
2026-06-15T10:02:42.8803003Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T10:02:42.8803104Z               "line": 251
2026-06-15T10:02:42.8803185Z             },
2026-06-15T10:02:42.8803270Z             {
2026-06-15T10:02:42.8803419Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T10:02:42.8803505Z               "line": 33
2026-06-15T10:02:42.8803589Z             },
2026-06-15T10:02:42.8803669Z             {
2026-06-15T10:02:42.8803813Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T10:02:42.8803901Z               "line": 45
2026-06-15T10:02:42.8804005Z             },
2026-06-15T10:02:42.8804135Z             {
2026-06-15T10:02:42.8804282Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T10:02:42.8804392Z               "line": 59
2026-06-15T10:02:42.8804483Z             },
2026-06-15T10:02:42.8804573Z             {
2026-06-15T10:02:42.8804697Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T10:02:42.8804817Z               "line": 376
2026-06-15T10:02:42.8804911Z             }
2026-06-15T10:02:42.8804998Z           ]
2026-06-15T10:02:42.8805089Z         },
2026-06-15T10:02:42.8805179Z         "int": {
2026-06-15T10:02:42.8805317Z           "complete": true,
2026-06-15T10:02:42.8805404Z           "evidence": [
2026-06-15T10:02:42.8805479Z             {
2026-06-15T10:02:42.8805612Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8805695Z               "line": 793
2026-06-15T10:02:42.8805808Z             },
2026-06-15T10:02:42.8805894Z             {
2026-06-15T10:02:42.8806024Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T10:02:42.8806104Z               "line": 342
2026-06-15T10:02:42.8806199Z             }
2026-06-15T10:02:42.8806291Z           ]
2026-06-15T10:02:42.8806372Z         },
2026-06-15T10:02:42.8806470Z         "unit": {
2026-06-15T10:02:42.8806565Z           "complete": true,
2026-06-15T10:02:42.8806661Z           "evidence": [
2026-06-15T10:02:42.8806743Z             {
2026-06-15T10:02:42.8806875Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T10:02:42.8806971Z               "line": 293
2026-06-15T10:02:42.8807062Z             },
2026-06-15T10:02:42.8807152Z             {
2026-06-15T10:02:42.8807272Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T10:02:42.8807372Z               "line": 304
2026-06-15T10:02:42.8807457Z             },
2026-06-15T10:02:42.8807543Z             {
2026-06-15T10:02:42.8807667Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T10:02:42.8807753Z               "line": 406
2026-06-15T10:02:42.8807838Z             },
2026-06-15T10:02:42.8807921Z             {
2026-06-15T10:02:42.8808067Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T10:02:42.8808157Z               "line": 72
2026-06-15T10:02:42.8808241Z             },
2026-06-15T10:02:42.8808335Z             {
2026-06-15T10:02:42.8808458Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T10:02:42.8808635Z               "line": 82
2026-06-15T10:02:42.8808711Z             },
2026-06-15T10:02:42.8808806Z             {
2026-06-15T10:02:42.8809099Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T10:02:42.8809190Z               "line": 100
2026-06-15T10:02:42.8809280Z             },
2026-06-15T10:02:42.8809361Z             {
2026-06-15T10:02:42.8809504Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T10:02:42.8809591Z               "line": 110
2026-06-15T10:02:42.8809676Z             },
2026-06-15T10:02:42.8809766Z             {
2026-06-15T10:02:42.8809901Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-15T10:02:42.8809995Z               "line": 125
2026-06-15T10:02:42.8810076Z             },
2026-06-15T10:02:42.8810163Z             {
2026-06-15T10:02:42.8810291Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T10:02:42.8810385Z               "line": 1044
2026-06-15T10:02:42.8810482Z             },
2026-06-15T10:02:42.8810563Z             {
2026-06-15T10:02:42.8810686Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T10:02:42.8810778Z               "line": 1110
2026-06-15T10:02:42.8810859Z             },
2026-06-15T10:02:42.8810948Z             {
2026-06-15T10:02:42.8811068Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T10:02:42.8811164Z               "line": 1357
2026-06-15T10:02:42.8811249Z             }
2026-06-15T10:02:42.8811340Z           ]
2026-06-15T10:02:42.8811412Z         }
2026-06-15T10:02:42.8811494Z       }
2026-06-15T10:02:42.8811578Z     },
2026-06-15T10:02:42.8811663Z     {
2026-06-15T10:02:42.8811763Z       "id": "REQ-PAIR-6",
2026-06-15T10:02:42.8812027Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-15T10:02:42.8812124Z       "requiredStages": [
2026-06-15T10:02:42.8812210Z         "impl",
2026-06-15T10:02:42.8812294Z         "unit"
2026-06-15T10:02:42.8812381Z       ],
2026-06-15T10:02:42.8812472Z       "stages": {
2026-06-15T10:02:42.8812567Z         "doc": {
2026-06-15T10:02:42.8812666Z           "complete": false,
2026-06-15T10:02:42.8812768Z           "evidence": []
2026-06-15T10:02:42.8812858Z         },
2026-06-15T10:02:42.8812948Z         "impl": {
2026-06-15T10:02:42.8813044Z           "complete": true,
2026-06-15T10:02:42.8813129Z           "evidence": [
2026-06-15T10:02:42.8813210Z             {
2026-06-15T10:02:42.8813315Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8813416Z               "line": 2888
2026-06-15T10:02:42.8813501Z             },
2026-06-15T10:02:42.8813587Z             {
2026-06-15T10:02:42.8813688Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8813787Z               "line": 3269
2026-06-15T10:02:42.8813887Z             },
2026-06-15T10:02:42.8813965Z             {
2026-06-15T10:02:42.8814088Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8814192Z               "line": 18
2026-06-15T10:02:42.8814282Z             },
2026-06-15T10:02:42.8814373Z             {
2026-06-15T10:02:42.8814490Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8814579Z               "line": 49
2026-06-15T10:02:42.8814662Z             },
2026-06-15T10:02:42.8814748Z             {
2026-06-15T10:02:42.8814857Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8814947Z               "line": 318
2026-06-15T10:02:42.8815034Z             }
2026-06-15T10:02:42.8815114Z           ]
2026-06-15T10:02:42.8815195Z         },
2026-06-15T10:02:42.8815277Z         "int": {
2026-06-15T10:02:42.8815377Z           "complete": false,
2026-06-15T10:02:42.8815467Z           "evidence": []
2026-06-15T10:02:42.8815558Z         },
2026-06-15T10:02:42.8815654Z         "unit": {
2026-06-15T10:02:42.8815748Z           "complete": true,
2026-06-15T10:02:42.8815839Z           "evidence": [
2026-06-15T10:02:42.8815926Z             {
2026-06-15T10:02:42.8816149Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8816241Z               "line": 9135
2026-06-15T10:02:42.8816339Z             },
2026-06-15T10:02:42.8816551Z             {
2026-06-15T10:02:42.8816654Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8816755Z               "line": 9152
2026-06-15T10:02:42.8816846Z             },
2026-06-15T10:02:42.8816937Z             {
2026-06-15T10:02:42.8817040Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8817130Z               "line": 383
2026-06-15T10:02:42.8817221Z             },
2026-06-15T10:02:42.8817298Z             {
2026-06-15T10:02:42.8817416Z               "path": "crates/spt/src/elevation.rs",
2026-06-15T10:02:42.8817497Z               "line": 392
2026-06-15T10:02:42.8817579Z             }
2026-06-15T10:02:42.8817669Z           ]
2026-06-15T10:02:42.8817749Z         }
2026-06-15T10:02:42.8817837Z       }
2026-06-15T10:02:42.8817922Z     },
2026-06-15T10:02:42.8818003Z     {
2026-06-15T10:02:42.8818103Z       "id": "REQ-PAIR-7",
2026-06-15T10:02:42.8818270Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-15T10:02:42.8818375Z       "requiredStages": [],
2026-06-15T10:02:42.8818476Z       "stages": {
2026-06-15T10:02:42.8818561Z         "doc": {
2026-06-15T10:02:42.8818656Z           "complete": false,
2026-06-15T10:02:42.8818757Z           "evidence": []
2026-06-15T10:02:42.8818838Z         },
2026-06-15T10:02:42.8818923Z         "impl": {
2026-06-15T10:02:42.8819086Z           "complete": false,
2026-06-15T10:02:42.8819186Z           "evidence": []
2026-06-15T10:02:42.8819266Z         },
2026-06-15T10:02:42.8819351Z         "int": {
2026-06-15T10:02:42.8819447Z           "complete": false,
2026-06-15T10:02:42.8819541Z           "evidence": []
2026-06-15T10:02:42.8819635Z         },
2026-06-15T10:02:42.8819720Z         "unit": {
2026-06-15T10:02:42.8819817Z           "complete": false,
2026-06-15T10:02:42.8819912Z           "evidence": []
2026-06-15T10:02:42.8819997Z         }
2026-06-15T10:02:42.8820088Z       }
2026-06-15T10:02:42.8820165Z     },
2026-06-15T10:02:42.8820246Z     {
2026-06-15T10:02:42.8820350Z       "id": "REQ-PAIR-8",
2026-06-15T10:02:42.8821818Z       "title": "NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)",
2026-06-15T10:02:42.8821929Z       "requiredStages": [
2026-06-15T10:02:42.8822015Z         "impl",
2026-06-15T10:02:42.8822105Z         "unit"
2026-06-15T10:02:42.8822175Z       ],
2026-06-15T10:02:42.8822275Z       "stages": {
2026-06-15T10:02:42.8822366Z         "doc": {
2026-06-15T10:02:42.8822455Z           "complete": false,
2026-06-15T10:02:42.8822549Z           "evidence": []
2026-06-15T10:02:42.8822636Z         },
2026-06-15T10:02:42.8822731Z         "impl": {
2026-06-15T10:02:42.8822816Z           "complete": true,
2026-06-15T10:02:42.8822921Z           "evidence": [
2026-06-15T10:02:42.8823004Z             {
2026-06-15T10:02:42.8823122Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.8823222Z               "line": 577
2026-06-15T10:02:42.8823299Z             },
2026-06-15T10:02:42.8823394Z             {
2026-06-15T10:02:42.8823527Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T10:02:42.8823623Z               "line": 22
2026-06-15T10:02:42.8823708Z             },
2026-06-15T10:02:42.8823789Z             {
2026-06-15T10:02:42.8823914Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T10:02:42.8824004Z               "line": 76
2026-06-15T10:02:42.8824099Z             },
2026-06-15T10:02:42.8824180Z             {
2026-06-15T10:02:42.8824315Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T10:02:42.8824535Z               "line": 127
2026-06-15T10:02:42.8824611Z             }
2026-06-15T10:02:42.8824704Z           ]
2026-06-15T10:02:42.8824866Z         },
2026-06-15T10:02:42.8824965Z         "int": {
2026-06-15T10:02:42.8825050Z           "complete": false,
2026-06-15T10:02:42.8825144Z           "evidence": []
2026-06-15T10:02:42.8825241Z         },
2026-06-15T10:02:42.8825327Z         "unit": {
2026-06-15T10:02:42.8825421Z           "complete": true,
2026-06-15T10:02:42.8825507Z           "evidence": [
2026-06-15T10:02:42.8825603Z             {
2026-06-15T10:02:42.8825731Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T10:02:42.8825827Z               "line": 183
2026-06-15T10:02:42.8825927Z             },
2026-06-15T10:02:42.8825999Z             {
2026-06-15T10:02:42.8826133Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T10:02:42.8826214Z               "line": 195
2026-06-15T10:02:42.8826313Z             },
2026-06-15T10:02:42.8826394Z             {
2026-06-15T10:02:42.8826533Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T10:02:42.8826637Z               "line": 211
2026-06-15T10:02:42.8826723Z             },
2026-06-15T10:02:42.8826815Z             {
2026-06-15T10:02:42.8826937Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-15T10:02:42.8827029Z               "line": 227
2026-06-15T10:02:42.8827115Z             }
2026-06-15T10:02:42.8827205Z           ]
2026-06-15T10:02:42.8827300Z         }
2026-06-15T10:02:42.8827387Z       }
2026-06-15T10:02:42.8827473Z     },
2026-06-15T10:02:42.8827553Z     {
2026-06-15T10:02:42.8827652Z       "id": "REQ-PRES-1",
2026-06-15T10:02:42.8829097Z       "title": "Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)",
2026-06-15T10:02:42.8829216Z       "requiredStages": [
2026-06-15T10:02:42.8829302Z         "impl",
2026-06-15T10:02:42.8829393Z         "unit",
2026-06-15T10:02:42.8829507Z         "int"
2026-06-15T10:02:42.8829588Z       ],
2026-06-15T10:02:42.8829670Z       "stages": {
2026-06-15T10:02:42.8829760Z         "doc": {
2026-06-15T10:02:42.8829845Z           "complete": true,
2026-06-15T10:02:42.8829944Z           "evidence": [
2026-06-15T10:02:42.8830021Z             {
2026-06-15T10:02:42.8830124Z               "path": "docs/DEFERRED.md",
2026-06-15T10:02:42.8830204Z               "line": 11
2026-06-15T10:02:42.8830295Z             }
2026-06-15T10:02:42.8830387Z           ]
2026-06-15T10:02:42.8830467Z         },
2026-06-15T10:02:42.8830557Z         "impl": {
2026-06-15T10:02:42.8830653Z           "complete": true,
2026-06-15T10:02:42.8830753Z           "evidence": [
2026-06-15T10:02:42.8830834Z             {
2026-06-15T10:02:42.8830959Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T10:02:42.8831063Z               "line": 515
2026-06-15T10:02:42.8831149Z             },
2026-06-15T10:02:42.8831244Z             {
2026-06-15T10:02:42.8831369Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T10:02:42.8831468Z               "line": 567
2026-06-15T10:02:42.8831559Z             },
2026-06-15T10:02:42.8831636Z             {
2026-06-15T10:02:42.8831759Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8831844Z               "line": 188
2026-06-15T10:02:42.8831931Z             },
2026-06-15T10:02:42.8832012Z             {
2026-06-15T10:02:42.8832140Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8832237Z               "line": 214
2026-06-15T10:02:42.8832322Z             },
2026-06-15T10:02:42.8832412Z             {
2026-06-15T10:02:42.8832537Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T10:02:42.8832754Z               "line": 28
2026-06-15T10:02:42.8832845Z             },
2026-06-15T10:02:42.8833029Z             {
2026-06-15T10:02:42.8833157Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T10:02:42.8833254Z               "line": 105
2026-06-15T10:02:42.8833335Z             },
2026-06-15T10:02:42.8833414Z             {
2026-06-15T10:02:42.8833535Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T10:02:42.8833620Z               "line": 161
2026-06-15T10:02:42.8833719Z             },
2026-06-15T10:02:42.8833816Z             {
2026-06-15T10:02:42.8833939Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T10:02:42.8834039Z               "line": 180
2026-06-15T10:02:42.8834125Z             },
2026-06-15T10:02:42.8834222Z             {
2026-06-15T10:02:42.8834349Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8834435Z               "line": 415
2026-06-15T10:02:42.8834522Z             },
2026-06-15T10:02:42.8834602Z             {
2026-06-15T10:02:42.8834731Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T10:02:42.8834818Z               "line": 289
2026-06-15T10:02:42.8834903Z             },
2026-06-15T10:02:42.8834993Z             {
2026-06-15T10:02:42.8835118Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T10:02:42.8835222Z               "line": 336
2026-06-15T10:02:42.8835297Z             },
2026-06-15T10:02:42.8835392Z             {
2026-06-15T10:02:42.8835512Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T10:02:42.8835614Z               "line": 362
2026-06-15T10:02:42.8835690Z             },
2026-06-15T10:02:42.8835777Z             {
2026-06-15T10:02:42.8835901Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8835991Z               "line": 100
2026-06-15T10:02:42.8836082Z             }
2026-06-15T10:02:42.8836168Z           ]
2026-06-15T10:02:42.8836262Z         },
2026-06-15T10:02:42.8836348Z         "int": {
2026-06-15T10:02:42.8836459Z           "complete": true,
2026-06-15T10:02:42.8836554Z           "evidence": [
2026-06-15T10:02:42.8836649Z             {
2026-06-15T10:02:42.8836783Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T10:02:42.8836873Z               "line": 559
2026-06-15T10:02:42.8836968Z             },
2026-06-15T10:02:42.8837056Z             {
2026-06-15T10:02:42.8837169Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8837264Z               "line": 678
2026-06-15T10:02:42.8837351Z             },
2026-06-15T10:02:42.8837441Z             {
2026-06-15T10:02:42.8837564Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8837666Z               "line": 1071
2026-06-15T10:02:42.8837751Z             }
2026-06-15T10:02:42.8837831Z           ]
2026-06-15T10:02:42.8837918Z         },
2026-06-15T10:02:42.8838005Z         "unit": {
2026-06-15T10:02:42.8838108Z           "complete": true,
2026-06-15T10:02:42.8838189Z           "evidence": [
2026-06-15T10:02:42.8838279Z             {
2026-06-15T10:02:42.8838404Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.8838489Z               "line": 674
2026-06-15T10:02:42.8838574Z             },
2026-06-15T10:02:42.8838656Z             {
2026-06-15T10:02:42.8838780Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T10:02:42.8838865Z               "line": 238
2026-06-15T10:02:42.8839037Z             },
2026-06-15T10:02:42.8839132Z             {
2026-06-15T10:02:42.8839252Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T10:02:42.8839342Z               "line": 269
2026-06-15T10:02:42.8839428Z             },
2026-06-15T10:02:42.8839509Z             {
2026-06-15T10:02:42.8839615Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T10:02:42.8839714Z               "line": 305
2026-06-15T10:02:42.8839800Z             },
2026-06-15T10:02:42.8839996Z             {
2026-06-15T10:02:42.8840119Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-15T10:02:42.8840215Z               "line": 336
2026-06-15T10:02:42.8840396Z             },
2026-06-15T10:02:42.8840476Z             {
2026-06-15T10:02:42.8840614Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.8840712Z               "line": 1165
2026-06-15T10:02:42.8840793Z             },
2026-06-15T10:02:42.8840889Z             {
2026-06-15T10:02:42.8841009Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.8841102Z               "line": 1131
2026-06-15T10:02:42.8841194Z             }
2026-06-15T10:02:42.8841285Z           ]
2026-06-15T10:02:42.8841370Z         }
2026-06-15T10:02:42.8841460Z       }
2026-06-15T10:02:42.8841538Z     },
2026-06-15T10:02:42.8841619Z     {
2026-06-15T10:02:42.8841723Z       "id": "REQ-RC-1",
2026-06-15T10:02:42.8843814Z       "title": "`spt rc <id>` — user CLI attaching a local terminal to a broker-held PTY, reusing the cross-node attach machinery (attach.rs request_attach → send_attach_input pump, spt-net AttachRecord codec); local attach is the degenerate single-node case of the cross-node path (rides REQ-TERM-3 byte-stream streaming). Read-only `--view` (watch, no stdin forwarded). Clean detach that does NOT terminate the broker-held session (KNOWN-HAZARDS: PTY ownership stays with the broker; no termination on detach). Explicit detach keybind that cannot collide with harness passthrough input (legacy capsule used a ctrl-b prefix); documented. ConPTY DSR auto-answer in the attach reader (hazard 5.5).",
2026-06-15T10:02:42.8843923Z       "requiredStages": [
2026-06-15T10:02:42.8844018Z         "impl",
2026-06-15T10:02:42.8844100Z         "unit",
2026-06-15T10:02:42.8844195Z         "int"
2026-06-15T10:02:42.8844289Z       ],
2026-06-15T10:02:42.8844376Z       "stages": {
2026-06-15T10:02:42.8844467Z         "doc": {
2026-06-15T10:02:42.8844567Z           "complete": false,
2026-06-15T10:02:42.8844671Z           "evidence": []
2026-06-15T10:02:42.8844758Z         },
2026-06-15T10:02:42.8844852Z         "impl": {
2026-06-15T10:02:42.8844943Z           "complete": true,
2026-06-15T10:02:42.8845034Z           "evidence": [
2026-06-15T10:02:42.8845120Z             {
2026-06-15T10:02:42.8845238Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.8845335Z               "line": 895
2026-06-15T10:02:42.8845416Z             },
2026-06-15T10:02:42.8845510Z             {
2026-06-15T10:02:42.8845630Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.8845722Z               "line": 1168
2026-06-15T10:02:42.8845801Z             },
2026-06-15T10:02:42.8845886Z             {
2026-06-15T10:02:42.8846010Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.8846104Z               "line": 816
2026-06-15T10:02:42.8846184Z             },
2026-06-15T10:02:42.8846264Z             {
2026-06-15T10:02:42.8846385Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.8846489Z               "line": 850
2026-06-15T10:02:42.8846570Z             },
2026-06-15T10:02:42.8846657Z             {
2026-06-15T10:02:42.8846771Z               "path": "crates/spt/src/rc.rs",
2026-06-15T10:02:42.8846866Z               "line": 22
2026-06-15T10:02:42.8846957Z             },
2026-06-15T10:02:42.8847042Z             {
2026-06-15T10:02:42.8847151Z               "path": "crates/spt/src/rc.rs",
2026-06-15T10:02:42.8847243Z               "line": 181
2026-06-15T10:02:42.8847334Z             }
2026-06-15T10:02:42.8847424Z           ]
2026-06-15T10:02:42.8847510Z         },
2026-06-15T10:02:42.8847601Z         "int": {
2026-06-15T10:02:42.8847696Z           "complete": true,
2026-06-15T10:02:42.8847791Z           "evidence": [
2026-06-15T10:02:42.8847877Z             {
2026-06-15T10:02:42.8848006Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T10:02:42.8848106Z               "line": 252
2026-06-15T10:02:42.8848177Z             },
2026-06-15T10:02:42.8848353Z             {
2026-06-15T10:02:42.8848468Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T10:02:42.8848565Z               "line": 279
2026-06-15T10:02:42.8848734Z             },
2026-06-15T10:02:42.8848819Z             {
2026-06-15T10:02:42.8849030Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T10:02:42.8849110Z               "line": 404
2026-06-15T10:02:42.8849197Z             }
2026-06-15T10:02:42.8849283Z           ]
2026-06-15T10:02:42.8849377Z         },
2026-06-15T10:02:42.8849453Z         "unit": {
2026-06-15T10:02:42.8849550Z           "complete": true,
2026-06-15T10:02:42.8849645Z           "evidence": [
2026-06-15T10:02:42.8849721Z             {
2026-06-15T10:02:42.8849831Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.8849917Z               "line": 1098
2026-06-15T10:02:42.8850012Z             },
2026-06-15T10:02:42.8850092Z             {
2026-06-15T10:02:42.8850208Z               "path": "crates/spt/src/rc.rs",
2026-06-15T10:02:42.8850312Z               "line": 421
2026-06-15T10:02:42.8850398Z             },
2026-06-15T10:02:42.8850485Z             {
2026-06-15T10:02:42.8850589Z               "path": "crates/spt/src/rc.rs",
2026-06-15T10:02:42.8850684Z               "line": 450
2026-06-15T10:02:42.8850766Z             },
2026-06-15T10:02:42.8850852Z             {
2026-06-15T10:02:42.8850951Z               "path": "crates/spt/src/rc.rs",
2026-06-15T10:02:42.8851041Z               "line": 463
2026-06-15T10:02:42.8851127Z             }
2026-06-15T10:02:42.8851212Z           ]
2026-06-15T10:02:42.8851306Z         }
2026-06-15T10:02:42.8851391Z       }
2026-06-15T10:02:42.8851482Z     },
2026-06-15T10:02:42.8851564Z     {
2026-06-15T10:02:42.8851662Z       "id": "REQ-RCVIEW-1",
2026-06-15T10:02:42.8856166Z       "title": "Remote-attach controller/viewer model (CONTEXT.md:317): a session's broker OutputLog serves ONE interactive controller (input + EXCLUSIVE PTY resize; its viewport sets the size, sent on attach + every window change via crossterm Event::Resize) plus ANY NUMBER of read-only `--view` attachers (output-only, no input, no resize; client-side letterbox — center+pad when larger, clip+1-line indicator when smaller; only the local ctrl-b d detach chord). Attach intent is three-valued (`Viewer | Control | Take`, wire-default Control): Control to a FREE endpoint becomes controller, Control to a CONTROLLED endpoint is REFUSED with guidance (`--view`/`--take`) — never auto-viewer, never silent-displace. Wire adds (additive, N-1 skip-unknown): `Request.intent`, `Resize{rows,cols}` (controller-only), `Size{rows,cols}` (→viewer), `Displaced{by}` (→displaced controller). The brain-resume cursor (delivered_through, ADR-0018) tracks the CONTROLLER ONLY; viewers replay from their own from_seq and never move it. Dormancy keys on the controller ONLY: controller attach wakes / controller detach goes dormant (even with viewers present); viewer attach/detach is wake-neutral and may watch a dormant endpoint as-is. v1: viewing is gated identically to driving — a viewer runs the same access_check(Unsolicited) as a controller (watching reveals full session contents = a real disclosure); a lighter distinct watch-gate is deferred to cross-subnet/finer-consent (CONTEXT.md:317 'driving ≠ watching' = the future seam).",
2026-06-15T10:02:42.8856305Z       "requiredStages": [
2026-06-15T10:02:42.8856389Z         "doc",
2026-06-15T10:02:42.8856475Z         "impl",
2026-06-15T10:02:42.8856565Z         "unit",
2026-06-15T10:02:42.8856655Z         "int"
2026-06-15T10:02:42.8856739Z       ],
2026-06-15T10:02:42.8856834Z       "stages": {
2026-06-15T10:02:42.8856921Z         "doc": {
2026-06-15T10:02:42.8857026Z           "complete": true,
2026-06-15T10:02:42.8857116Z           "evidence": [
2026-06-15T10:02:42.8857207Z             {
2026-06-15T10:02:42.8857312Z               "path": "CONTEXT.md",
2026-06-15T10:02:42.8857406Z               "line": 320
2026-06-15T10:02:42.8857498Z             }
2026-06-15T10:02:42.8857584Z           ]
2026-06-15T10:02:42.8857788Z         },
2026-06-15T10:02:42.8857885Z         "impl": {
2026-06-15T10:02:42.8857974Z           "complete": true,
2026-06-15T10:02:42.8858166Z           "evidence": [
2026-06-15T10:02:42.8858251Z             {
2026-06-15T10:02:42.8858384Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-15T10:02:42.8858476Z               "line": 323
2026-06-15T10:02:42.8858589Z             },
2026-06-15T10:02:42.8858670Z             {
2026-06-15T10:02:42.8858795Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.8858899Z               "line": 430
2026-06-15T10:02:42.8859130Z             },
2026-06-15T10:02:42.8859223Z             {
2026-06-15T10:02:42.8859365Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.8859457Z               "line": 441
2026-06-15T10:02:42.8859552Z             },
2026-06-15T10:02:42.8859656Z             {
2026-06-15T10:02:42.8859795Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T10:02:42.8859937Z               "line": 41
2026-06-15T10:02:42.8860033Z             },
2026-06-15T10:02:42.8860110Z             {
2026-06-15T10:02:42.8860229Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T10:02:42.8860328Z               "line": 62
2026-06-15T10:02:42.8860416Z             },
2026-06-15T10:02:42.8860506Z             {
2026-06-15T10:02:42.8860638Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T10:02:42.8860735Z               "line": 255
2026-06-15T10:02:42.8860825Z             },
2026-06-15T10:02:42.8860906Z             {
2026-06-15T10:02:42.8861016Z               "path": "crates/spt/src/rc.rs",
2026-06-15T10:02:42.8861102Z               "line": 181
2026-06-15T10:02:42.8861192Z             }
2026-06-15T10:02:42.8861278Z           ]
2026-06-15T10:02:42.8861365Z         },
2026-06-15T10:02:42.8861445Z         "int": {
2026-06-15T10:02:42.8861548Z           "complete": true,
2026-06-15T10:02:42.8861643Z           "evidence": [
2026-06-15T10:02:42.8861724Z             {
2026-06-15T10:02:42.8861852Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T10:02:42.8861937Z               "line": 789
2026-06-15T10:02:42.8862037Z             },
2026-06-15T10:02:42.8862110Z             {
2026-06-15T10:02:42.8862237Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T10:02:42.8862338Z               "line": 829
2026-06-15T10:02:42.8862424Z             },
2026-06-15T10:02:42.8862514Z             {
2026-06-15T10:02:42.8862634Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T10:02:42.8862724Z               "line": 876
2026-06-15T10:02:42.8862809Z             },
2026-06-15T10:02:42.8862895Z             {
2026-06-15T10:02:42.8863044Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T10:02:42.8863144Z               "line": 988
2026-06-15T10:02:42.8863234Z             }
2026-06-15T10:02:42.8863316Z           ]
2026-06-15T10:02:42.8863401Z         },
2026-06-15T10:02:42.8863487Z         "unit": {
2026-06-15T10:02:42.8863593Z           "complete": true,
2026-06-15T10:02:42.8863678Z           "evidence": [
2026-06-15T10:02:42.8863763Z             {
2026-06-15T10:02:42.8863883Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T10:02:42.8863969Z               "line": 175
2026-06-15T10:02:42.8864077Z             },
2026-06-15T10:02:42.8864154Z             {
2026-06-15T10:02:42.8864279Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-15T10:02:42.8864378Z               "line": 195
2026-06-15T10:02:42.8864463Z             }
2026-06-15T10:02:42.8864559Z           ]
2026-06-15T10:02:42.8864644Z         }
2026-06-15T10:02:42.8864728Z       }
2026-06-15T10:02:42.8864813Z     },
2026-06-15T10:02:42.8864890Z     {
2026-06-15T10:02:42.8864996Z       "id": "REQ-REACH-1",
2026-06-15T10:02:42.8865147Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-15T10:02:42.8865253Z       "requiredStages": [
2026-06-15T10:02:42.8865339Z         "impl",
2026-06-15T10:02:42.8865539Z         "unit",
2026-06-15T10:02:42.8865624Z         "int"
2026-06-15T10:02:42.8865715Z       ],
2026-06-15T10:02:42.8865805Z       "stages": {
2026-06-15T10:02:42.8865997Z         "doc": {
2026-06-15T10:02:42.8866101Z           "complete": false,
2026-06-15T10:02:42.8866193Z           "evidence": []
2026-06-15T10:02:42.8866282Z         },
2026-06-15T10:02:42.8866368Z         "impl": {
2026-06-15T10:02:42.8866470Z           "complete": true,
2026-06-15T10:02:42.8866569Z           "evidence": [
2026-06-15T10:02:42.8866654Z             {
2026-06-15T10:02:42.8866780Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.8866870Z               "line": 430
2026-06-15T10:02:42.8866959Z             },
2026-06-15T10:02:42.8867044Z             {
2026-06-15T10:02:42.8867163Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T10:02:42.8867252Z               "line": 76
2026-06-15T10:02:42.8867328Z             },
2026-06-15T10:02:42.8867409Z             {
2026-06-15T10:02:42.8867529Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T10:02:42.8867628Z               "line": 222
2026-06-15T10:02:42.8867709Z             },
2026-06-15T10:02:42.8867810Z             {
2026-06-15T10:02:42.8867919Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T10:02:42.8868014Z               "line": 422
2026-06-15T10:02:42.8868092Z             },
2026-06-15T10:02:42.8868177Z             {
2026-06-15T10:02:42.8868295Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T10:02:42.8868387Z               "line": 529
2026-06-15T10:02:42.8868468Z             },
2026-06-15T10:02:42.8868558Z             {
2026-06-15T10:02:42.8868672Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T10:02:42.8868774Z               "line": 39
2026-06-15T10:02:42.8868849Z             },
2026-06-15T10:02:42.8869007Z             {
2026-06-15T10:02:42.8869112Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T10:02:42.8869202Z               "line": 239
2026-06-15T10:02:42.8869293Z             },
2026-06-15T10:02:42.8869385Z             {
2026-06-15T10:02:42.8869502Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T10:02:42.8869603Z               "line": 88
2026-06-15T10:02:42.8869685Z             },
2026-06-15T10:02:42.8869770Z             {
2026-06-15T10:02:42.8869888Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T10:02:42.8869978Z               "line": 98
2026-06-15T10:02:42.8870055Z             },
2026-06-15T10:02:42.8870140Z             {
2026-06-15T10:02:42.8870259Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.8870351Z               "line": 229
2026-06-15T10:02:42.8870441Z             }
2026-06-15T10:02:42.8870521Z           ]
2026-06-15T10:02:42.8870613Z         },
2026-06-15T10:02:42.8870699Z         "int": {
2026-06-15T10:02:42.8870798Z           "complete": true,
2026-06-15T10:02:42.8870884Z           "evidence": [
2026-06-15T10:02:42.8870971Z             {
2026-06-15T10:02:42.8871099Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T10:02:42.8871179Z               "line": 415
2026-06-15T10:02:42.8871266Z             },
2026-06-15T10:02:42.8871352Z             {
2026-06-15T10:02:42.8871480Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T10:02:42.8871571Z               "line": 516
2026-06-15T10:02:42.8871657Z             },
2026-06-15T10:02:42.8871747Z             {
2026-06-15T10:02:42.8871871Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8871967Z               "line": 904
2026-06-15T10:02:42.8872042Z             },
2026-06-15T10:02:42.8872127Z             {
2026-06-15T10:02:42.8872252Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.8876652Z               "line": 1199
2026-06-15T10:02:42.8876776Z             }
2026-06-15T10:02:42.8876865Z           ]
2026-06-15T10:02:42.8876957Z         },
2026-06-15T10:02:42.8877053Z         "unit": {
2026-06-15T10:02:42.8877157Z           "complete": true,
2026-06-15T10:02:42.8877406Z           "evidence": [
2026-06-15T10:02:42.8877500Z             {
2026-06-15T10:02:42.8877632Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T10:02:42.8877826Z               "line": 639
2026-06-15T10:02:42.8877921Z             },
2026-06-15T10:02:42.8878002Z             {
2026-06-15T10:02:42.8878123Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-15T10:02:42.8878217Z               "line": 660
2026-06-15T10:02:42.8878308Z             },
2026-06-15T10:02:42.8878399Z             {
2026-06-15T10:02:42.8878517Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-15T10:02:42.8878623Z               "line": 646
2026-06-15T10:02:42.8878704Z             },
2026-06-15T10:02:42.8878790Z             {
2026-06-15T10:02:42.8878913Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T10:02:42.8879109Z               "line": 93
2026-06-15T10:02:42.8879199Z             },
2026-06-15T10:02:42.8879281Z             {
2026-06-15T10:02:42.8879414Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-15T10:02:42.8879504Z               "line": 224
2026-06-15T10:02:42.8879586Z             },
2026-06-15T10:02:42.8879672Z             {
2026-06-15T10:02:42.8879795Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T10:02:42.8879897Z               "line": 96
2026-06-15T10:02:42.8879978Z             },
2026-06-15T10:02:42.8880062Z             {
2026-06-15T10:02:42.8880172Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-15T10:02:42.8880269Z               "line": 146
2026-06-15T10:02:42.8880348Z             },
2026-06-15T10:02:42.8880433Z             {
2026-06-15T10:02:42.8880557Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T10:02:42.8880644Z               "line": 529
2026-06-15T10:02:42.8880729Z             },
2026-06-15T10:02:42.8880814Z             {
2026-06-15T10:02:42.8880920Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T10:02:42.8881015Z               "line": 118
2026-06-15T10:02:42.8881110Z             },
2026-06-15T10:02:42.8881197Z             {
2026-06-15T10:02:42.8881306Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-15T10:02:42.8881401Z               "line": 148
2026-06-15T10:02:42.8881487Z             },
2026-06-15T10:02:42.8881583Z             {
2026-06-15T10:02:42.8881697Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.8881792Z               "line": 804
2026-06-15T10:02:42.8881874Z             }
2026-06-15T10:02:42.8881964Z           ]
2026-06-15T10:02:42.8882054Z         }
2026-06-15T10:02:42.8882136Z       }
2026-06-15T10:02:42.8882222Z     },
2026-06-15T10:02:42.8882297Z     {
2026-06-15T10:02:42.8882398Z       "id": "REQ-REACH-2",
2026-06-15T10:02:42.8882560Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-15T10:02:42.8882659Z       "requiredStages": [],
2026-06-15T10:02:42.8882754Z       "stages": {
2026-06-15T10:02:42.8882831Z         "doc": {
2026-06-15T10:02:42.8882938Z           "complete": false,
2026-06-15T10:02:42.8883023Z           "evidence": []
2026-06-15T10:02:42.8883114Z         },
2026-06-15T10:02:42.8883211Z         "impl": {
2026-06-15T10:02:42.8883296Z           "complete": false,
2026-06-15T10:02:42.8883396Z           "evidence": []
2026-06-15T10:02:42.8883482Z         },
2026-06-15T10:02:42.8883568Z         "int": {
2026-06-15T10:02:42.8883662Z           "complete": false,
2026-06-15T10:02:42.8883754Z           "evidence": []
2026-06-15T10:02:42.8883854Z         },
2026-06-15T10:02:42.8883939Z         "unit": {
2026-06-15T10:02:42.8884040Z           "complete": false,
2026-06-15T10:02:42.8884135Z           "evidence": []
2026-06-15T10:02:42.8884216Z         }
2026-06-15T10:02:42.8884301Z       }
2026-06-15T10:02:42.8884408Z     },
2026-06-15T10:02:42.8884497Z     {
2026-06-15T10:02:42.8884593Z       "id": "REQ-REL-1",
2026-06-15T10:02:42.8884979Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-15T10:02:42.8885212Z       "requiredStages": [
2026-06-15T10:02:42.8885309Z         "doc",
2026-06-15T10:02:42.8885493Z         "impl"
2026-06-15T10:02:42.8885578Z       ],
2026-06-15T10:02:42.8885674Z       "stages": {
2026-06-15T10:02:42.8885754Z         "doc": {
2026-06-15T10:02:42.8885853Z           "complete": true,
2026-06-15T10:02:42.8885938Z           "evidence": [
2026-06-15T10:02:42.8886034Z             {
2026-06-15T10:02:42.8886263Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-15T10:02:42.8886359Z               "line": 3
2026-06-15T10:02:42.8886445Z             }
2026-06-15T10:02:42.8886529Z           ]
2026-06-15T10:02:42.8886621Z         },
2026-06-15T10:02:42.8886712Z         "impl": {
2026-06-15T10:02:42.8886816Z           "complete": true,
2026-06-15T10:02:42.8886916Z           "evidence": [
2026-06-15T10:02:42.8887003Z             {
2026-06-15T10:02:42.8887140Z               "path": ".github/workflows/docs-publish.yml",
2026-06-15T10:02:42.8887236Z               "line": 11
2026-06-15T10:02:42.8887327Z             },
2026-06-15T10:02:42.8887416Z             {
2026-06-15T10:02:42.8887531Z               "path": "crates/xtask/src/main.rs",
2026-06-15T10:02:42.8887627Z               "line": 265
2026-06-15T10:02:42.8887713Z             }
2026-06-15T10:02:42.8887798Z           ]
2026-06-15T10:02:42.8887880Z         },
2026-06-15T10:02:42.8887962Z         "int": {
2026-06-15T10:02:42.8888055Z           "complete": false,
2026-06-15T10:02:42.8888155Z           "evidence": []
2026-06-15T10:02:42.8888245Z         },
2026-06-15T10:02:42.8888331Z         "unit": {
2026-06-15T10:02:42.8888429Z           "complete": false,
2026-06-15T10:02:42.8888509Z           "evidence": []
2026-06-15T10:02:42.8888606Z         }
2026-06-15T10:02:42.8888688Z       }
2026-06-15T10:02:42.8888777Z     },
2026-06-15T10:02:42.8888868Z     {
2026-06-15T10:02:42.8889030Z       "id": "REQ-REL-2",
2026-06-15T10:02:42.8889503Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
2026-06-15T10:02:42.8889612Z       "requiredStages": [
2026-06-15T10:02:42.8889707Z         "impl",
2026-06-15T10:02:42.8889792Z         "int"
2026-06-15T10:02:42.8889875Z       ],
2026-06-15T10:02:42.8889969Z       "stages": {
2026-06-15T10:02:42.8890050Z         "doc": {
2026-06-15T10:02:42.8890151Z           "complete": true,
2026-06-15T10:02:42.8890242Z           "evidence": [
2026-06-15T10:02:42.8890332Z             {
2026-06-15T10:02:42.8890432Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-15T10:02:42.8890519Z               "line": 6
2026-06-15T10:02:42.8890612Z             }
2026-06-15T10:02:42.8890689Z           ]
2026-06-15T10:02:42.8890776Z         },
2026-06-15T10:02:42.8890862Z         "impl": {
2026-06-15T10:02:42.8890960Z           "complete": true,
2026-06-15T10:02:42.8891040Z           "evidence": [
2026-06-15T10:02:42.8891137Z             {
2026-06-15T10:02:42.8891260Z               "path": ".github/workflows/release.yml",
2026-06-15T10:02:42.8891346Z               "line": 16
2026-06-15T10:02:42.8891432Z             },
2026-06-15T10:02:42.8891518Z             {
2026-06-15T10:02:42.8891637Z               "path": "crates/xtask/src/main.rs",
2026-06-15T10:02:42.8891718Z               "line": 352
2026-06-15T10:02:42.8891809Z             },
2026-06-15T10:02:42.8891904Z             {
2026-06-15T10:02:42.8892008Z               "path": "crates/xtask/src/main.rs",
2026-06-15T10:02:42.8892105Z               "line": 426
2026-06-15T10:02:42.8892190Z             },
2026-06-15T10:02:42.8892290Z             {
2026-06-15T10:02:42.8892391Z               "path": "crates/xtask/src/main.rs",
2026-06-15T10:02:42.8892491Z               "line": 588
2026-06-15T10:02:42.8892576Z             },
2026-06-15T10:02:42.8892657Z             {
2026-06-15T10:02:42.8892763Z               "path": "crates/xtask/src/main.rs",
2026-06-15T10:02:42.8892958Z               "line": 720
2026-06-15T10:02:42.8893050Z             }
2026-06-15T10:02:42.8893135Z           ]
2026-06-15T10:02:42.8893219Z         },
2026-06-15T10:02:42.8893410Z         "int": {
2026-06-15T10:02:42.8893498Z           "complete": true,
2026-06-15T10:02:42.8893597Z           "evidence": [
2026-06-15T10:02:42.8893679Z             {
2026-06-15T10:02:42.8893822Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-15T10:02:42.8893917Z               "line": 13
2026-06-15T10:02:42.8894013Z             }
2026-06-15T10:02:42.8894104Z           ]
2026-06-15T10:02:42.8894189Z         },
2026-06-15T10:02:42.8894280Z         "unit": {
2026-06-15T10:02:42.8894362Z           "complete": false,
2026-06-15T10:02:42.8894461Z           "evidence": []
2026-06-15T10:02:42.8894547Z         }
2026-06-15T10:02:42.8894644Z       }
2026-06-15T10:02:42.8894738Z     },
2026-06-15T10:02:42.8894814Z     {
2026-06-15T10:02:42.8894909Z       "id": "REQ-REL-3",
2026-06-15T10:02:42.8895349Z       "title": "Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)",
2026-06-15T10:02:42.8895453Z       "requiredStages": [
2026-06-15T10:02:42.8895549Z         "impl",
2026-06-15T10:02:42.8895630Z         "unit"
2026-06-15T10:02:42.8895720Z       ],
2026-06-15T10:02:42.8895811Z       "stages": {
2026-06-15T10:02:42.8895897Z         "doc": {
2026-06-15T10:02:42.8895993Z           "complete": false,
2026-06-15T10:02:42.8896091Z           "evidence": []
2026-06-15T10:02:42.8896181Z         },
2026-06-15T10:02:42.8896272Z         "impl": {
2026-06-15T10:02:42.8896375Z           "complete": true,
2026-06-15T10:02:42.8896465Z           "evidence": [
2026-06-15T10:02:42.8896556Z             {
2026-06-15T10:02:42.8896681Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.8896774Z               "line": 237
2026-06-15T10:02:42.8896861Z             },
2026-06-15T10:02:42.8896962Z             {
2026-06-15T10:02:42.8897080Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.8897166Z               "line": 289
2026-06-15T10:02:42.8897258Z             },
2026-06-15T10:02:42.8897343Z             {
2026-06-15T10:02:42.8897457Z               "path": "crates/xtask/src/main.rs",
2026-06-15T10:02:42.8897553Z               "line": 329
2026-06-15T10:02:42.8897643Z             },
2026-06-15T10:02:42.8897724Z             {
2026-06-15T10:02:42.8897830Z               "path": "crates/xtask/src/main.rs",
2026-06-15T10:02:42.8897925Z               "line": 353
2026-06-15T10:02:42.8898005Z             },
2026-06-15T10:02:42.8898091Z             {
2026-06-15T10:02:42.8898202Z               "path": "crates/xtask/src/main.rs",
2026-06-15T10:02:42.8898282Z               "line": 394
2026-06-15T10:02:42.8898368Z             }
2026-06-15T10:02:42.8898450Z           ]
2026-06-15T10:02:42.8898531Z         },
2026-06-15T10:02:42.8898616Z         "int": {
2026-06-15T10:02:42.8898715Z           "complete": false,
2026-06-15T10:02:42.8898819Z           "evidence": []
2026-06-15T10:02:42.8898900Z         },
2026-06-15T10:02:42.8899065Z         "unit": {
2026-06-15T10:02:42.8899151Z           "complete": true,
2026-06-15T10:02:42.8899238Z           "evidence": [
2026-06-15T10:02:42.8899317Z             {
2026-06-15T10:02:42.8899447Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.8899542Z               "line": 992
2026-06-15T10:02:42.8899623Z             },
2026-06-15T10:02:42.8899709Z             {
2026-06-15T10:02:42.8899829Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.8899915Z               "line": 1051
2026-06-15T10:02:42.8899999Z             }
2026-06-15T10:02:42.8900086Z           ]
2026-06-15T10:02:42.8900172Z         }
2026-06-15T10:02:42.8900257Z       }
2026-06-15T10:02:42.8900343Z     },
2026-06-15T10:02:42.8900425Z     {
2026-06-15T10:02:42.8900529Z       "id": "REQ-RUN-PICKER",
2026-06-15T10:02:42.8905407Z       "title": "Interactive `spt endpoint run` picker (ratatui TUI): bare `spt endpoint run` (no --adapter/--id) enters an in-process picker (flags-present = the REQ-HOST-RUN-1 non-interactive path, untouched). Layer 1 picks kind (Create new | Pick existing). Create-new: choose a registered kind=\"harness\" adapter with its shipped+local profiles tree-nested (registry::registered / manifest.profiles / local_profile_names) → enter a charset-validated id → start. Pick-existing: category select (left/right) over [<cwd-project> | Local node | Subnet], endpoints grouped + alphabetically sorted per category, a status square per endpoint (online green ■ / offline gray ▢ — the blue \"attached\" tri-state + Kick are DEFERRED to a broker attach-presence slice, M12-W2-RULING Q1), type-to-filter (`/`, nucleo-matcher), a pinned keybind legend, and a right-half two-pane description (harness adapter:profile · best-effort project history newest→oldest from the contextstore p-<project> branches, empty-if-none · `spt endpoint description`). Confirm layer offers status-dependent options — Attach/Start/View (rc pump / cmd_endpoint_run) · Instantiate-locally (remote) · Change-harness-adapter (offline) · Fork (cmd_fork) · Resume-from-history (offline+LOCAL only; enumerate spt_store::sessions::last_k, titles `<project> @ <ts> (…id5)`, feed session_id → cmd_endpoint_run --resume). A single action enum is the source of truth so a future tap-mode (phone PTY) layers on without re-coupling to keybinds. EVERY terminal action routes through cmd_endpoint_run / existing CLI fns — no second bringup path.",
2026-06-15T10:02:42.8905779Z       "requiredStages": [
2026-06-15T10:02:42.8905880Z         "doc",
2026-06-15T10:02:42.8905970Z         "impl",
2026-06-15T10:02:42.8906061Z         "unit"
2026-06-15T10:02:42.8906143Z       ],
2026-06-15T10:02:42.8906238Z       "stages": {
2026-06-15T10:02:42.8906327Z         "doc": {
2026-06-15T10:02:42.8906424Z           "complete": true,
2026-06-15T10:02:42.8906524Z           "evidence": [
2026-06-15T10:02:42.8906609Z             {
2026-06-15T10:02:42.8906722Z               "path": "CONTEXT.md",
2026-06-15T10:02:42.8906813Z               "line": 324
2026-06-15T10:02:42.8906912Z             }
2026-06-15T10:02:42.8907010Z           ]
2026-06-15T10:02:42.8907092Z         },
2026-06-15T10:02:42.8907184Z         "impl": {
2026-06-15T10:02:42.8907273Z           "complete": true,
2026-06-15T10:02:42.8907373Z           "evidence": [
2026-06-15T10:02:42.8907450Z             {
2026-06-15T10:02:42.8907570Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8907659Z               "line": 861
2026-06-15T10:02:42.8907731Z             },
2026-06-15T10:02:42.8907827Z             {
2026-06-15T10:02:42.8907931Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8908032Z               "line": 871
2026-06-15T10:02:42.8908113Z             },
2026-06-15T10:02:42.8908194Z             {
2026-06-15T10:02:42.8908322Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T10:02:42.8908409Z               "line": 9
2026-06-15T10:02:42.8908499Z             },
2026-06-15T10:02:42.8908580Z             {
2026-06-15T10:02:42.8908700Z               "path": "crates/spt/src/picker/data.rs",
2026-06-15T10:02:42.8908786Z               "line": 67
2026-06-15T10:02:42.8908884Z             },
2026-06-15T10:02:42.8909091Z             {
2026-06-15T10:02:42.8909203Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-15T10:02:42.8909298Z               "line": 16
2026-06-15T10:02:42.8909389Z             },
2026-06-15T10:02:42.8909507Z             {
2026-06-15T10:02:42.8909620Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-15T10:02:42.8909716Z               "line": 249
2026-06-15T10:02:42.8909798Z             },
2026-06-15T10:02:42.8909882Z             {
2026-06-15T10:02:42.8909998Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8910088Z               "line": 11
2026-06-15T10:02:42.8910174Z             },
2026-06-15T10:02:42.8910259Z             {
2026-06-15T10:02:42.8910389Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8910588Z               "line": 85
2026-06-15T10:02:42.8910675Z             },
2026-06-15T10:02:42.8910850Z             {
2026-06-15T10:02:42.8910971Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8911075Z               "line": 452
2026-06-15T10:02:42.8911156Z             },
2026-06-15T10:02:42.8911247Z             {
2026-06-15T10:02:42.8911362Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8911442Z               "line": 533
2026-06-15T10:02:42.8911538Z             },
2026-06-15T10:02:42.8911625Z             {
2026-06-15T10:02:42.8911742Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8911828Z               "line": 586
2026-06-15T10:02:42.8911911Z             },
2026-06-15T10:02:42.8911996Z             {
2026-06-15T10:02:42.8912113Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T10:02:42.8912218Z               "line": 8
2026-06-15T10:02:42.8912305Z             }
2026-06-15T10:02:42.8912390Z           ]
2026-06-15T10:02:42.8912466Z         },
2026-06-15T10:02:42.8912562Z         "int": {
2026-06-15T10:02:42.8912667Z           "complete": false,
2026-06-15T10:02:42.8912761Z           "evidence": []
2026-06-15T10:02:42.8912848Z         },
2026-06-15T10:02:42.8912934Z         "unit": {
2026-06-15T10:02:42.8913043Z           "complete": true,
2026-06-15T10:02:42.8913138Z           "evidence": [
2026-06-15T10:02:42.8913221Z             {
2026-06-15T10:02:42.8913329Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8913419Z               "line": 6138
2026-06-15T10:02:42.8913516Z             },
2026-06-15T10:02:42.8913597Z             {
2026-06-15T10:02:42.8913706Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8913787Z               "line": 6149
2026-06-15T10:02:42.8913874Z             },
2026-06-15T10:02:42.8913958Z             {
2026-06-15T10:02:42.8914063Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8914170Z               "line": 737
2026-06-15T10:02:42.8914250Z             },
2026-06-15T10:02:42.8914344Z             {
2026-06-15T10:02:42.8914458Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8914548Z               "line": 744
2026-06-15T10:02:42.8914647Z             },
2026-06-15T10:02:42.8914717Z             {
2026-06-15T10:02:42.8914838Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8914937Z               "line": 761
2026-06-15T10:02:42.8915032Z             },
2026-06-15T10:02:42.8915114Z             {
2026-06-15T10:02:42.8915229Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8915324Z               "line": 781
2026-06-15T10:02:42.8915410Z             },
2026-06-15T10:02:42.8915501Z             {
2026-06-15T10:02:42.8915605Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8915705Z               "line": 795
2026-06-15T10:02:42.8915797Z             },
2026-06-15T10:02:42.8915887Z             {
2026-06-15T10:02:42.8916015Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8916102Z               "line": 804
2026-06-15T10:02:42.8916201Z             },
2026-06-15T10:02:42.8916287Z             {
2026-06-15T10:02:42.8916408Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8916506Z               "line": 815
2026-06-15T10:02:42.8916592Z             },
2026-06-15T10:02:42.8916684Z             {
2026-06-15T10:02:42.8916793Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8916892Z               "line": 837
2026-06-15T10:02:42.8916974Z             },
2026-06-15T10:02:42.8917070Z             {
2026-06-15T10:02:42.8917193Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8917282Z               "line": 856
2026-06-15T10:02:42.8917373Z             },
2026-06-15T10:02:42.8917448Z             {
2026-06-15T10:02:42.8917557Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8917758Z               "line": 893
2026-06-15T10:02:42.8917848Z             },
2026-06-15T10:02:42.8917928Z             {
2026-06-15T10:02:42.8918105Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8918200Z               "line": 922
2026-06-15T10:02:42.8918281Z             },
2026-06-15T10:02:42.8918373Z             {
2026-06-15T10:02:42.8918482Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8918572Z               "line": 935
2026-06-15T10:02:42.8918659Z             },
2026-06-15T10:02:42.8918744Z             {
2026-06-15T10:02:42.8918863Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8919016Z               "line": 979
2026-06-15T10:02:42.8919106Z             },
2026-06-15T10:02:42.8919187Z             {
2026-06-15T10:02:42.8919303Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8919407Z               "line": 1006
2026-06-15T10:02:42.8919493Z             },
2026-06-15T10:02:42.8919575Z             {
2026-06-15T10:02:42.8919689Z               "path": "crates/spt/src/picker/model.rs",
2026-06-15T10:02:42.8919782Z               "line": 1022
2026-06-15T10:02:42.8919863Z             },
2026-06-15T10:02:42.8919944Z             {
2026-06-15T10:02:42.8920071Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T10:02:42.8920161Z               "line": 419
2026-06-15T10:02:42.8920238Z             },
2026-06-15T10:02:42.8920319Z             {
2026-06-15T10:02:42.8920438Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T10:02:42.8920533Z               "line": 431
2026-06-15T10:02:42.8920611Z             },
2026-06-15T10:02:42.8920692Z             {
2026-06-15T10:02:42.8920800Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T10:02:42.8920882Z               "line": 449
2026-06-15T10:02:42.8920972Z             },
2026-06-15T10:02:42.8921072Z             {
2026-06-15T10:02:42.8921188Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T10:02:42.8921287Z               "line": 471
2026-06-15T10:02:42.8921382Z             },
2026-06-15T10:02:42.8921459Z             {
2026-06-15T10:02:42.8921579Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T10:02:42.8921664Z               "line": 481
2026-06-15T10:02:42.8921754Z             },
2026-06-15T10:02:42.8921832Z             {
2026-06-15T10:02:42.8921936Z               "path": "crates/spt/src/picker/view.rs",
2026-06-15T10:02:42.8922035Z               "line": 504
2026-06-15T10:02:42.8922112Z             }
2026-06-15T10:02:42.8922204Z           ]
2026-06-15T10:02:42.8922292Z         }
2026-06-15T10:02:42.8922383Z       }
2026-06-15T10:02:42.8922461Z     },
2026-06-15T10:02:42.8922542Z     {
2026-06-15T10:02:42.8922645Z       "id": "REQ-RUN-SHORTCUT",
2026-06-15T10:02:42.8927302Z       "title": "`<basename>-<id>` launcher shortcut generation (picker `s` keybind, M12-W2-T2.4): from any pre-start options set the picker writes/updates a `<basename>-<id>` launcher at the project root baking the current selection's non-interactive `spt endpoint run` flags (terminal actions only: adapter[:profile] + id + (create|resume) + (start|attach|view); Kick/Instantiate/Change-adapter/Fork are interactive-only, not bakeable). BASENAME IS A PARAMETER (operator rev. 2026-06-14): harness-agnostic spt-core defaults to `spt` (→ `spt-<id>`); an adapter/flow OVERRIDES it (spt-claude-code → `cc`), so spt-core NEVER bakes `cc` (a harness name) into itself. The basename must be a DISTINCT token, never bare `spt` (a `spt.cmd` would shadow the real `spt.exe` only under cmd.exe cwd-first search, silently no-op in PowerShell/Unix, and self-recurse). The script is the CURRENT OS's native form — `.cmd` on Windows (NOT `.ps1`: default PATHEXT excludes `.ps1` so a bare/ext-less name never resolves one; `.cmd` is PATHEXT-resolvable), POSIX `sh` (+chmod +x) on Unix (a single portable form can't be both). The generated header documents the invocation reality (cmd.exe bare `<name>` in the project dir / PowerShell `.\\<name>` / Unix `./<name>`; a truly-bare basename on PATH = a PATH-installed launcher, `/spt:setup`'s job). Overwrite is SENTINEL-guarded: the generator writes + checks a generated-by header marker — it overwrites its own prior output freely, but REFUSES + warns if a same-named file lacks the sentinel (never clobber a user file). Requires the additive `--create` flag on `Run{}` (the default-fresh made explicit; N-1-safe).",
2026-06-15T10:02:42.8927616Z       "requiredStages": [
2026-06-15T10:02:42.8927701Z         "doc",
2026-06-15T10:02:42.8927795Z         "impl",
2026-06-15T10:02:42.8927876Z         "unit"
2026-06-15T10:02:42.8927962Z       ],
2026-06-15T10:02:42.8928041Z       "stages": {
2026-06-15T10:02:42.8928135Z         "doc": {
2026-06-15T10:02:42.8928231Z           "complete": true,
2026-06-15T10:02:42.8928313Z           "evidence": [
2026-06-15T10:02:42.8928393Z             {
2026-06-15T10:02:42.8928493Z               "path": "CONTEXT.md",
2026-06-15T10:02:42.8928585Z               "line": 347
2026-06-15T10:02:42.8928670Z             }
2026-06-15T10:02:42.8928751Z           ]
2026-06-15T10:02:42.8928842Z         },
2026-06-15T10:02:42.8928918Z         "impl": {
2026-06-15T10:02:42.8929094Z           "complete": true,
2026-06-15T10:02:42.8929180Z           "evidence": [
2026-06-15T10:02:42.8929262Z             {
2026-06-15T10:02:42.8929385Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T10:02:42.8929485Z               "line": 39
2026-06-15T10:02:42.8929576Z             },
2026-06-15T10:02:42.8929657Z             {
2026-06-15T10:02:42.8929781Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T10:02:42.8929863Z               "line": 79
2026-06-15T10:02:42.8929957Z             },
2026-06-15T10:02:42.8930034Z             {
2026-06-15T10:02:42.8930164Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T10:02:42.8930263Z               "line": 162
2026-06-15T10:02:42.8930347Z             }
2026-06-15T10:02:42.8930428Z           ]
2026-06-15T10:02:42.8930509Z         },
2026-06-15T10:02:42.8930599Z         "int": {
2026-06-15T10:02:42.8930692Z           "complete": false,
2026-06-15T10:02:42.8930793Z           "evidence": []
2026-06-15T10:02:42.8930884Z         },
2026-06-15T10:02:42.8930970Z         "unit": {
2026-06-15T10:02:42.8931065Z           "complete": true,
2026-06-15T10:02:42.8931156Z           "evidence": [
2026-06-15T10:02:42.8931252Z             {
2026-06-15T10:02:42.8931370Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T10:02:42.8931471Z               "line": 206
2026-06-15T10:02:42.8931551Z             },
2026-06-15T10:02:42.8931641Z             {
2026-06-15T10:02:42.8931762Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T10:02:42.8931843Z               "line": 222
2026-06-15T10:02:42.8931929Z             },
2026-06-15T10:02:42.8932014Z             {
2026-06-15T10:02:42.8932139Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T10:02:42.8932238Z               "line": 238
2026-06-15T10:02:42.8932324Z             },
2026-06-15T10:02:42.8932410Z             {
2026-06-15T10:02:42.8932528Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T10:02:42.8932629Z               "line": 251
2026-06-15T10:02:42.8932721Z             },
2026-06-15T10:02:42.8932797Z             {
2026-06-15T10:02:42.8932924Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-15T10:02:42.8933012Z               "line": 258
2026-06-15T10:02:42.8933093Z             }
2026-06-15T10:02:42.8933177Z           ]
2026-06-15T10:02:42.8933267Z         }
2026-06-15T10:02:42.8933357Z       }
2026-06-15T10:02:42.8933444Z     },
2026-06-15T10:02:42.8933538Z     {
2026-06-15T10:02:42.8933629Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-15T10:02:42.8933835Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-15T10:02:42.8933948Z       "requiredStages": [
2026-06-15T10:02:42.8934068Z         "impl",
2026-06-15T10:02:42.8934159Z         "unit"
2026-06-15T10:02:42.8934341Z       ],
2026-06-15T10:02:42.8934435Z       "stages": {
2026-06-15T10:02:42.8934515Z         "doc": {
2026-06-15T10:02:42.8934607Z           "complete": false,
2026-06-15T10:02:42.8934783Z           "evidence": []
2026-06-15T10:02:42.8934869Z         },
2026-06-15T10:02:42.8934961Z         "impl": {
2026-06-15T10:02:42.8935055Z           "complete": true,
2026-06-15T10:02:42.8935155Z           "evidence": [
2026-06-15T10:02:42.8935241Z             {
2026-06-15T10:02:42.8935365Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T10:02:42.8935459Z               "line": 18
2026-06-15T10:02:42.8935559Z             },
2026-06-15T10:02:42.8935645Z             {
2026-06-15T10:02:42.8935762Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T10:02:42.8935857Z               "line": 35
2026-06-15T10:02:42.8935944Z             },
2026-06-15T10:02:42.8936039Z             {
2026-06-15T10:02:42.8936157Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T10:02:42.8936263Z               "line": 72
2026-06-15T10:02:42.8936359Z             }
2026-06-15T10:02:42.8936444Z           ]
2026-06-15T10:02:42.8936535Z         },
2026-06-15T10:02:42.8936626Z         "int": {
2026-06-15T10:02:42.8936725Z           "complete": false,
2026-06-15T10:02:42.8936820Z           "evidence": []
2026-06-15T10:02:42.8936917Z         },
2026-06-15T10:02:42.8937002Z         "unit": {
2026-06-15T10:02:42.8937087Z           "complete": true,
2026-06-15T10:02:42.8937183Z           "evidence": [
2026-06-15T10:02:42.8937269Z             {
2026-06-15T10:02:42.8937393Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T10:02:42.8937484Z               "line": 239
2026-06-15T10:02:42.8937575Z             },
2026-06-15T10:02:42.8937664Z             {
2026-06-15T10:02:42.8937779Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T10:02:42.8937871Z               "line": 256
2026-06-15T10:02:42.8937946Z             },
2026-06-15T10:02:42.8938032Z             {
2026-06-15T10:02:42.8938137Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T10:02:42.8938237Z               "line": 265
2026-06-15T10:02:42.8938327Z             }
2026-06-15T10:02:42.8938407Z           ]
2026-06-15T10:02:42.8938498Z         }
2026-06-15T10:02:42.8938573Z       }
2026-06-15T10:02:42.8938658Z     },
2026-06-15T10:02:42.8938738Z     {
2026-06-15T10:02:42.8938849Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-15T10:02:42.8939063Z       "title": "Hostable endpoint-types capability declaration",
2026-06-15T10:02:42.8939149Z       "requiredStages": [
2026-06-15T10:02:42.8939250Z         "impl",
2026-06-15T10:02:42.8939335Z         "unit"
2026-06-15T10:02:42.8939421Z       ],
2026-06-15T10:02:42.8939507Z       "stages": {
2026-06-15T10:02:42.8939588Z         "doc": {
2026-06-15T10:02:42.8939687Z           "complete": false,
2026-06-15T10:02:42.8939770Z           "evidence": []
2026-06-15T10:02:42.8939864Z         },
2026-06-15T10:02:42.8939945Z         "impl": {
2026-06-15T10:02:42.8940046Z           "complete": true,
2026-06-15T10:02:42.8940136Z           "evidence": [
2026-06-15T10:02:42.8940231Z             {
2026-06-15T10:02:42.8940351Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.8940432Z               "line": 474
2026-06-15T10:02:42.8940527Z             }
2026-06-15T10:02:42.8940599Z           ]
2026-06-15T10:02:42.8940685Z         },
2026-06-15T10:02:42.8940771Z         "int": {
2026-06-15T10:02:42.8940870Z           "complete": false,
2026-06-15T10:02:42.8940964Z           "evidence": []
2026-06-15T10:02:42.8941046Z         },
2026-06-15T10:02:42.8941140Z         "unit": {
2026-06-15T10:02:42.8941234Z           "complete": true,
2026-06-15T10:02:42.8941334Z           "evidence": [
2026-06-15T10:02:42.8941411Z             {
2026-06-15T10:02:42.8941539Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.8941639Z               "line": 843
2026-06-15T10:02:42.8941721Z             }
2026-06-15T10:02:42.8941817Z           ]
2026-06-15T10:02:42.8942007Z         }
2026-06-15T10:02:42.8942093Z       }
2026-06-15T10:02:42.8942178Z     },
2026-06-15T10:02:42.8942278Z     {
2026-06-15T10:02:42.8942379Z       "id": "REQ-SEAM-HISTORY",
2026-06-15T10:02:42.8942689Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-15T10:02:42.8942794Z       "requiredStages": [
2026-06-15T10:02:42.8942874Z         "impl",
2026-06-15T10:02:42.8942961Z         "unit",
2026-06-15T10:02:42.8943042Z         "int"
2026-06-15T10:02:42.8943137Z       ],
2026-06-15T10:02:42.8943218Z       "stages": {
2026-06-15T10:02:42.8943309Z         "doc": {
2026-06-15T10:02:42.8943413Z           "complete": false,
2026-06-15T10:02:42.8943503Z           "evidence": []
2026-06-15T10:02:42.8943600Z         },
2026-06-15T10:02:42.8943690Z         "impl": {
2026-06-15T10:02:42.8943784Z           "complete": true,
2026-06-15T10:02:42.8943869Z           "evidence": [
2026-06-15T10:02:42.8943956Z             {
2026-06-15T10:02:42.8944080Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T10:02:42.8944170Z               "line": 24
2026-06-15T10:02:42.8944261Z             },
2026-06-15T10:02:42.8944342Z             {
2026-06-15T10:02:42.8944470Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T10:02:42.8944552Z               "line": 22
2026-06-15T10:02:42.8944638Z             }
2026-06-15T10:02:42.8944719Z           ]
2026-06-15T10:02:42.8944804Z         },
2026-06-15T10:02:42.8944886Z         "int": {
2026-06-15T10:02:42.8944981Z           "complete": true,
2026-06-15T10:02:42.8945071Z           "evidence": [
2026-06-15T10:02:42.8945152Z             {
2026-06-15T10:02:42.8945277Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T10:02:42.8945377Z               "line": 260
2026-06-15T10:02:42.8945453Z             }
2026-06-15T10:02:42.8945549Z           ]
2026-06-15T10:02:42.8945629Z         },
2026-06-15T10:02:42.8945724Z         "unit": {
2026-06-15T10:02:42.8945816Z           "complete": true,
2026-06-15T10:02:42.8945916Z           "evidence": [
2026-06-15T10:02:42.8946015Z             {
2026-06-15T10:02:42.8946129Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T10:02:42.8946233Z               "line": 171
2026-06-15T10:02:42.8946317Z             },
2026-06-15T10:02:42.8946412Z             {
2026-06-15T10:02:42.8946518Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T10:02:42.8946618Z               "line": 200
2026-06-15T10:02:42.8946708Z             },
2026-06-15T10:02:42.8946789Z             {
2026-06-15T10:02:42.8946909Z               "path": "crates/spt-live/src/echo.rs",
2026-06-15T10:02:42.8946989Z               "line": 220
2026-06-15T10:02:42.8947075Z             },
2026-06-15T10:02:42.8947157Z             {
2026-06-15T10:02:42.8947276Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T10:02:42.8947371Z               "line": 199
2026-06-15T10:02:42.8947444Z             },
2026-06-15T10:02:42.8947538Z             {
2026-06-15T10:02:42.8947652Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T10:02:42.8947753Z               "line": 219
2026-06-15T10:02:42.8947834Z             },
2026-06-15T10:02:42.8947919Z             {
2026-06-15T10:02:42.8948044Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T10:02:42.8948125Z               "line": 244
2026-06-15T10:02:42.8948205Z             },
2026-06-15T10:02:42.8948291Z             {
2026-06-15T10:02:42.8948412Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T10:02:42.8948496Z               "line": 276
2026-06-15T10:02:42.8948582Z             },
2026-06-15T10:02:42.8948669Z             {
2026-06-15T10:02:42.8948774Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T10:02:42.8948873Z               "line": 297
2026-06-15T10:02:42.8949044Z             },
2026-06-15T10:02:42.8949147Z             {
2026-06-15T10:02:42.8949265Z               "path": "crates/spt-live/src/history.rs",
2026-06-15T10:02:42.8949346Z               "line": 324
2026-06-15T10:02:42.8949428Z             }
2026-06-15T10:02:42.8949632Z           ]
2026-06-15T10:02:42.8949729Z         }
2026-06-15T10:02:42.8949810Z       }
2026-06-15T10:02:42.8949899Z     },
2026-06-15T10:02:42.8950072Z     {
2026-06-15T10:02:42.8950171Z       "id": "REQ-SEAM-INJECT",
2026-06-15T10:02:42.8950344Z       "title": "inject-input methods configurable per activity-state",
2026-06-15T10:02:42.8950443Z       "requiredStages": [
2026-06-15T10:02:42.8950529Z         "impl",
2026-06-15T10:02:42.8950610Z         "unit"
2026-06-15T10:02:42.8950701Z       ],
2026-06-15T10:02:42.8950791Z       "stages": {
2026-06-15T10:02:42.8950867Z         "doc": {
2026-06-15T10:02:42.8950974Z           "complete": false,
2026-06-15T10:02:42.8955246Z           "evidence": []
2026-06-15T10:02:42.8955364Z         },
2026-06-15T10:02:42.8955456Z         "impl": {
2026-06-15T10:02:42.8955555Z           "complete": true,
2026-06-15T10:02:42.8955659Z           "evidence": [
2026-06-15T10:02:42.8955747Z             {
2026-06-15T10:02:42.8955884Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T10:02:42.8955998Z               "line": 19
2026-06-15T10:02:42.8956100Z             },
2026-06-15T10:02:42.8956189Z             {
2026-06-15T10:02:42.8956323Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T10:02:42.8956424Z               "line": 111
2026-06-15T10:02:42.8956509Z             }
2026-06-15T10:02:42.8956603Z           ]
2026-06-15T10:02:42.8956679Z         },
2026-06-15T10:02:42.8956775Z         "int": {
2026-06-15T10:02:42.8956872Z           "complete": false,
2026-06-15T10:02:42.8956972Z           "evidence": []
2026-06-15T10:02:42.8957064Z         },
2026-06-15T10:02:42.8957150Z         "unit": {
2026-06-15T10:02:42.8957249Z           "complete": true,
2026-06-15T10:02:42.8957335Z           "evidence": [
2026-06-15T10:02:42.8957431Z             {
2026-06-15T10:02:42.8957544Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T10:02:42.8957645Z               "line": 345
2026-06-15T10:02:42.8957736Z             },
2026-06-15T10:02:42.8957822Z             {
2026-06-15T10:02:42.8957945Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T10:02:42.8958037Z               "line": 365
2026-06-15T10:02:42.8958137Z             }
2026-06-15T10:02:42.8958212Z           ]
2026-06-15T10:02:42.8958304Z         }
2026-06-15T10:02:42.8958385Z       }
2026-06-15T10:02:42.8958470Z     },
2026-06-15T10:02:42.8958546Z     {
2026-06-15T10:02:42.8958652Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-15T10:02:42.8958799Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-15T10:02:42.8958899Z       "requiredStages": [
2026-06-15T10:02:42.8959089Z         "impl",
2026-06-15T10:02:42.8959185Z         "unit"
2026-06-15T10:02:42.8959267Z       ],
2026-06-15T10:02:42.8959367Z       "stages": {
2026-06-15T10:02:42.8959451Z         "doc": {
2026-06-15T10:02:42.8959551Z           "complete": false,
2026-06-15T10:02:42.8959642Z           "evidence": []
2026-06-15T10:02:42.8959730Z         },
2026-06-15T10:02:42.8959825Z         "impl": {
2026-06-15T10:02:42.8959906Z           "complete": true,
2026-06-15T10:02:42.8960003Z           "evidence": [
2026-06-15T10:02:42.8960083Z             {
2026-06-15T10:02:42.8960212Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.8960293Z               "line": 18
2026-06-15T10:02:42.8960379Z             },
2026-06-15T10:02:42.8960473Z             {
2026-06-15T10:02:42.8960589Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.8960689Z               "line": 353
2026-06-15T10:02:42.8960769Z             }
2026-06-15T10:02:42.8960856Z           ]
2026-06-15T10:02:42.8960942Z         },
2026-06-15T10:02:42.8961022Z         "int": {
2026-06-15T10:02:42.8961122Z           "complete": false,
2026-06-15T10:02:42.8961200Z           "evidence": []
2026-06-15T10:02:42.8961285Z         },
2026-06-15T10:02:42.8961365Z         "unit": {
2026-06-15T10:02:42.8961466Z           "complete": true,
2026-06-15T10:02:42.8961562Z           "evidence": [
2026-06-15T10:02:42.8961791Z             {
2026-06-15T10:02:42.8961910Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.8961995Z               "line": 606
2026-06-15T10:02:42.8962185Z             },
2026-06-15T10:02:42.8962269Z             {
2026-06-15T10:02:42.8962392Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.8962483Z               "line": 616
2026-06-15T10:02:42.8962565Z             }
2026-06-15T10:02:42.8962650Z           ]
2026-06-15T10:02:42.8962725Z         }
2026-06-15T10:02:42.8962817Z       }
2026-06-15T10:02:42.8962898Z     },
2026-06-15T10:02:42.8962988Z     {
2026-06-15T10:02:42.8963088Z       "id": "REQ-SEAM-PSYCHE",
2026-06-15T10:02:42.8963236Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-15T10:02:42.8963336Z       "requiredStages": [
2026-06-15T10:02:42.8963428Z         "impl",
2026-06-15T10:02:42.8963528Z         "unit",
2026-06-15T10:02:42.8963604Z         "int"
2026-06-15T10:02:42.8963694Z       ],
2026-06-15T10:02:42.8963776Z       "stages": {
2026-06-15T10:02:42.8963866Z         "doc": {
2026-06-15T10:02:42.8963966Z           "complete": false,
2026-06-15T10:02:42.8964047Z           "evidence": []
2026-06-15T10:02:42.8964138Z         },
2026-06-15T10:02:42.8964227Z         "impl": {
2026-06-15T10:02:42.8964323Z           "complete": true,
2026-06-15T10:02:42.8964410Z           "evidence": [
2026-06-15T10:02:42.8964505Z             {
2026-06-15T10:02:42.8964619Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T10:02:42.8964701Z               "line": 19
2026-06-15T10:02:42.8964782Z             },
2026-06-15T10:02:42.8964866Z             {
2026-06-15T10:02:42.8964975Z               "path": "crates/spt/src/api/live.rs",
2026-06-15T10:02:42.8965061Z               "line": 12
2026-06-15T10:02:42.8965144Z             },
2026-06-15T10:02:42.8965228Z             {
2026-06-15T10:02:42.8965338Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.8965434Z               "line": 241
2026-06-15T10:02:42.8965524Z             }
2026-06-15T10:02:42.8965614Z           ]
2026-06-15T10:02:42.8965696Z         },
2026-06-15T10:02:42.8965777Z         "int": {
2026-06-15T10:02:42.8965872Z           "complete": true,
2026-06-15T10:02:42.8965963Z           "evidence": [
2026-06-15T10:02:42.8966054Z             {
2026-06-15T10:02:42.8966173Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T10:02:42.8966272Z               "line": 259
2026-06-15T10:02:42.8966350Z             }
2026-06-15T10:02:42.8966434Z           ]
2026-06-15T10:02:42.8966515Z         },
2026-06-15T10:02:42.8966602Z         "unit": {
2026-06-15T10:02:42.8966707Z           "complete": true,
2026-06-15T10:02:42.8966796Z           "evidence": [
2026-06-15T10:02:42.8966888Z             {
2026-06-15T10:02:42.8966999Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T10:02:42.8967097Z               "line": 161
2026-06-15T10:02:42.8967187Z             },
2026-06-15T10:02:42.8967273Z             {
2026-06-15T10:02:42.8967395Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T10:02:42.8967480Z               "line": 168
2026-06-15T10:02:42.8967566Z             },
2026-06-15T10:02:42.8967648Z             {
2026-06-15T10:02:42.8967761Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-15T10:02:42.8967856Z               "line": 191
2026-06-15T10:02:42.8967943Z             },
2026-06-15T10:02:42.8968034Z             {
2026-06-15T10:02:42.8968138Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T10:02:42.8968239Z               "line": 106
2026-06-15T10:02:42.8968315Z             },
2026-06-15T10:02:42.8968401Z             {
2026-06-15T10:02:42.8968525Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T10:02:42.8968616Z               "line": 137
2026-06-15T10:02:42.8968702Z             },
2026-06-15T10:02:42.8968786Z             {
2026-06-15T10:02:42.8968902Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-15T10:02:42.8969054Z               "line": 161
2026-06-15T10:02:42.8969330Z             }
2026-06-15T10:02:42.8969426Z           ]
2026-06-15T10:02:42.8969508Z         }
2026-06-15T10:02:42.8969589Z       }
2026-06-15T10:02:42.8969760Z     },
2026-06-15T10:02:42.8969856Z     {
2026-06-15T10:02:42.8969955Z       "id": "REQ-SEAM-RESUME",
2026-06-15T10:02:42.8970140Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-15T10:02:42.8970235Z       "requiredStages": [
2026-06-15T10:02:42.8970314Z         "impl",
2026-06-15T10:02:42.8970404Z         "unit"
2026-06-15T10:02:42.8970491Z       ],
2026-06-15T10:02:42.8970587Z       "stages": {
2026-06-15T10:02:42.8970676Z         "doc": {
2026-06-15T10:02:42.8970777Z           "complete": false,
2026-06-15T10:02:42.8970877Z           "evidence": []
2026-06-15T10:02:42.8970958Z         },
2026-06-15T10:02:42.8971052Z         "impl": {
2026-06-15T10:02:42.8971135Z           "complete": true,
2026-06-15T10:02:42.8971230Z           "evidence": [
2026-06-15T10:02:42.8971315Z             {
2026-06-15T10:02:42.8971430Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T10:02:42.8971530Z               "line": 19
2026-06-15T10:02:42.8971620Z             }
2026-06-15T10:02:42.8971711Z           ]
2026-06-15T10:02:42.8971793Z         },
2026-06-15T10:02:42.8971888Z         "int": {
2026-06-15T10:02:42.8971973Z           "complete": false,
2026-06-15T10:02:42.8972075Z           "evidence": []
2026-06-15T10:02:42.8972155Z         },
2026-06-15T10:02:42.8972240Z         "unit": {
2026-06-15T10:02:42.8972341Z           "complete": true,
2026-06-15T10:02:42.8972432Z           "evidence": [
2026-06-15T10:02:42.8972512Z             {
2026-06-15T10:02:42.8972616Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T10:02:42.8972716Z               "line": 201
2026-06-15T10:02:42.8972801Z             },
2026-06-15T10:02:42.8972886Z             {
2026-06-15T10:02:42.8973009Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T10:02:42.8973091Z               "line": 223
2026-06-15T10:02:42.8973186Z             },
2026-06-15T10:02:42.8973266Z             {
2026-06-15T10:02:42.8973382Z               "path": "crates/spt-live/src/resume.rs",
2026-06-15T10:02:42.8973482Z               "line": 244
2026-06-15T10:02:42.8973553Z             }
2026-06-15T10:02:42.8973644Z           ]
2026-06-15T10:02:42.8973721Z         }
2026-06-15T10:02:42.8973806Z       }
2026-06-15T10:02:42.8973891Z     },
2026-06-15T10:02:42.8973973Z     {
2026-06-15T10:02:42.8974078Z       "id": "REQ-SEAM-SPAWN",
2026-06-15T10:02:42.8974178Z       "title": "spawn-session seam",
2026-06-15T10:02:42.8974278Z       "requiredStages": [
2026-06-15T10:02:42.8974369Z         "impl",
2026-06-15T10:02:42.8974459Z         "unit"
2026-06-15T10:02:42.8974544Z       ],
2026-06-15T10:02:42.8974642Z       "stages": {
2026-06-15T10:02:42.8974726Z         "doc": {
2026-06-15T10:02:42.8974822Z           "complete": false,
2026-06-15T10:02:42.8974913Z           "evidence": []
2026-06-15T10:02:42.8974994Z         },
2026-06-15T10:02:42.8975093Z         "impl": {
2026-06-15T10:02:42.8975188Z           "complete": true,
2026-06-15T10:02:42.8975285Z           "evidence": [
2026-06-15T10:02:42.8975370Z             {
2026-06-15T10:02:42.8975497Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T10:02:42.8975598Z               "line": 20
2026-06-15T10:02:42.8975679Z             }
2026-06-15T10:02:42.8975760Z           ]
2026-06-15T10:02:42.8975845Z         },
2026-06-15T10:02:42.8975936Z         "int": {
2026-06-15T10:02:42.8976042Z           "complete": false,
2026-06-15T10:02:42.8976136Z           "evidence": []
2026-06-15T10:02:42.8976228Z         },
2026-06-15T10:02:42.8976314Z         "unit": {
2026-06-15T10:02:42.8976409Z           "complete": true,
2026-06-15T10:02:42.8976499Z           "evidence": [
2026-06-15T10:02:42.8976595Z             {
2026-06-15T10:02:42.8976719Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T10:02:42.8976809Z               "line": 435
2026-06-15T10:02:42.8976981Z             },
2026-06-15T10:02:42.8977057Z             {
2026-06-15T10:02:42.8977177Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T10:02:42.8977352Z               "line": 442
2026-06-15T10:02:42.8977453Z             },
2026-06-15T10:02:42.8977540Z             {
2026-06-15T10:02:42.8977652Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T10:02:42.8977756Z               "line": 452
2026-06-15T10:02:42.8977842Z             },
2026-06-15T10:02:42.8977932Z             {
2026-06-15T10:02:42.8978040Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T10:02:42.8978136Z               "line": 458
2026-06-15T10:02:42.8978217Z             },
2026-06-15T10:02:42.8978298Z             {
2026-06-15T10:02:42.8978426Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T10:02:42.8978508Z               "line": 483
2026-06-15T10:02:42.8978599Z             },
2026-06-15T10:02:42.8978684Z             {
2026-06-15T10:02:42.8978809Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-15T10:02:42.8978913Z               "line": 520
2026-06-15T10:02:42.8979056Z             }
2026-06-15T10:02:42.8979152Z           ]
2026-06-15T10:02:42.8979237Z         }
2026-06-15T10:02:42.8979327Z       }
2026-06-15T10:02:42.8979409Z     },
2026-06-15T10:02:42.8979496Z     {
2026-06-15T10:02:42.8979600Z       "id": "REQ-SEAM-UPDATE",
2026-06-15T10:02:42.8979768Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-15T10:02:42.8979866Z       "requiredStages": [
2026-06-15T10:02:42.8979962Z         "impl",
2026-06-15T10:02:42.8980063Z         "unit"
2026-06-15T10:02:42.8980144Z       ],
2026-06-15T10:02:42.8980233Z       "stages": {
2026-06-15T10:02:42.8980320Z         "doc": {
2026-06-15T10:02:42.8980416Z           "complete": false,
2026-06-15T10:02:42.8980519Z           "evidence": []
2026-06-15T10:02:42.8980605Z         },
2026-06-15T10:02:42.8980686Z         "impl": {
2026-06-15T10:02:42.8980781Z           "complete": true,
2026-06-15T10:02:42.8980874Z           "evidence": [
2026-06-15T10:02:42.8980955Z             {
2026-06-15T10:02:42.8981094Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T10:02:42.8981193Z               "line": 28
2026-06-15T10:02:42.8981279Z             },
2026-06-15T10:02:42.8981361Z             {
2026-06-15T10:02:42.8981494Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T10:02:42.8981580Z               "line": 83
2026-06-15T10:02:42.8981666Z             }
2026-06-15T10:02:42.8981752Z           ]
2026-06-15T10:02:42.8981833Z         },
2026-06-15T10:02:42.8981918Z         "int": {
2026-06-15T10:02:42.8982015Z           "complete": false,
2026-06-15T10:02:42.8982099Z           "evidence": []
2026-06-15T10:02:42.8982185Z         },
2026-06-15T10:02:42.8982271Z         "unit": {
2026-06-15T10:02:42.8982353Z           "complete": true,
2026-06-15T10:02:42.8982448Z           "evidence": [
2026-06-15T10:02:42.8982533Z             {
2026-06-15T10:02:42.8982673Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T10:02:42.8982767Z               "line": 286
2026-06-15T10:02:42.8982844Z             },
2026-06-15T10:02:42.8982940Z             {
2026-06-15T10:02:42.8983068Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T10:02:42.8983166Z               "line": 297
2026-06-15T10:02:42.8983252Z             }
2026-06-15T10:02:42.8983333Z           ]
2026-06-15T10:02:42.8983417Z         }
2026-06-15T10:02:42.8983497Z       }
2026-06-15T10:02:42.8983584Z     },
2026-06-15T10:02:42.8983666Z     {
2026-06-15T10:02:42.8983760Z       "id": "REQ-SEC-1",
2026-06-15T10:02:42.8984150Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-15T10:02:42.8984248Z       "requiredStages": [
2026-06-15T10:02:42.8984338Z         "impl",
2026-06-15T10:02:42.8984418Z         "unit"
2026-06-15T10:02:42.8984509Z       ],
2026-06-15T10:02:42.8984709Z       "stages": {
2026-06-15T10:02:42.8984804Z         "doc": {
2026-06-15T10:02:42.8984896Z           "complete": false,
2026-06-15T10:02:42.8984995Z           "evidence": []
2026-06-15T10:02:42.8985167Z         },
2026-06-15T10:02:42.8985254Z         "impl": {
2026-06-15T10:02:42.8985343Z           "complete": true,
2026-06-15T10:02:42.8985434Z           "evidence": [
2026-06-15T10:02:42.8985512Z             {
2026-06-15T10:02:42.8985634Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T10:02:42.8985730Z               "line": 86
2026-06-15T10:02:42.8985826Z             },
2026-06-15T10:02:42.8985902Z             {
2026-06-15T10:02:42.8986029Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T10:02:42.8986114Z               "line": 116
2026-06-15T10:02:42.8986201Z             },
2026-06-15T10:02:42.8986287Z             {
2026-06-15T10:02:42.8986410Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T10:02:42.8986506Z               "line": 130
2026-06-15T10:02:42.8986597Z             },
2026-06-15T10:02:42.8986691Z             {
2026-06-15T10:02:42.8986812Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T10:02:42.8986911Z               "line": 109
2026-06-15T10:02:42.8986997Z             },
2026-06-15T10:02:42.8987087Z             {
2026-06-15T10:02:42.8987212Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T10:02:42.8987302Z               "line": 130
2026-06-15T10:02:42.8987397Z             },
2026-06-15T10:02:42.8987480Z             {
2026-06-15T10:02:42.8987598Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T10:02:42.8987678Z               "line": 143
2026-06-15T10:02:42.8987765Z             },
2026-06-15T10:02:42.8987860Z             {
2026-06-15T10:02:42.8987969Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T10:02:42.8988071Z               "line": 209
2026-06-15T10:02:42.8988147Z             },
2026-06-15T10:02:42.8988231Z             {
2026-06-15T10:02:42.8988349Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T10:02:42.8988450Z               "line": 235
2026-06-15T10:02:42.8988544Z             },
2026-06-15T10:02:42.8988624Z             {
2026-06-15T10:02:42.8988734Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8988826Z               "line": 4740
2026-06-15T10:02:42.8988905Z             }
2026-06-15T10:02:42.8989063Z           ]
2026-06-15T10:02:42.8989159Z         },
2026-06-15T10:02:42.8989244Z         "int": {
2026-06-15T10:02:42.8989340Z           "complete": false,
2026-06-15T10:02:42.8989435Z           "evidence": []
2026-06-15T10:02:42.8989521Z         },
2026-06-15T10:02:42.8989611Z         "unit": {
2026-06-15T10:02:42.8989688Z           "complete": true,
2026-06-15T10:02:42.8989788Z           "evidence": [
2026-06-15T10:02:42.8989873Z             {
2026-06-15T10:02:42.8989984Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T10:02:42.8990074Z               "line": 142
2026-06-15T10:02:42.8990165Z             },
2026-06-15T10:02:42.8990250Z             {
2026-06-15T10:02:42.8990366Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T10:02:42.8990469Z               "line": 194
2026-06-15T10:02:42.8990560Z             },
2026-06-15T10:02:42.8990647Z             {
2026-06-15T10:02:42.8990764Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-15T10:02:42.8990846Z               "line": 235
2026-06-15T10:02:42.8990929Z             },
2026-06-15T10:02:42.8991015Z             {
2026-06-15T10:02:42.8991141Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-15T10:02:42.8991236Z               "line": 140
2026-06-15T10:02:42.8991317Z             },
2026-06-15T10:02:42.8991401Z             {
2026-06-15T10:02:42.8991515Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T10:02:42.8991611Z               "line": 247
2026-06-15T10:02:42.8991697Z             },
2026-06-15T10:02:42.8991777Z             {
2026-06-15T10:02:42.8991901Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T10:02:42.8992101Z               "line": 277
2026-06-15T10:02:42.8992197Z             },
2026-06-15T10:02:42.8992274Z             {
2026-06-15T10:02:42.8992483Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T10:02:42.8992575Z               "line": 310
2026-06-15T10:02:42.8992655Z             },
2026-06-15T10:02:42.8992745Z             {
2026-06-15T10:02:42.8992856Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T10:02:42.8992956Z               "line": 329
2026-06-15T10:02:42.8993036Z             },
2026-06-15T10:02:42.8993127Z             {
2026-06-15T10:02:42.8993242Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T10:02:42.8993322Z               "line": 362
2026-06-15T10:02:42.8993418Z             },
2026-06-15T10:02:42.8993495Z             {
2026-06-15T10:02:42.8993618Z               "path": "crates/spt-store/src/access.rs",
2026-06-15T10:02:42.8993698Z               "line": 386
2026-06-15T10:02:42.8993798Z             },
2026-06-15T10:02:42.8993879Z             {
2026-06-15T10:02:42.8993977Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.8994062Z               "line": 6690
2026-06-15T10:02:42.8994153Z             }
2026-06-15T10:02:42.8994240Z           ]
2026-06-15T10:02:42.8994320Z         }
2026-06-15T10:02:42.8994415Z       }
2026-06-15T10:02:42.8994502Z     },
2026-06-15T10:02:42.8994583Z     {
2026-06-15T10:02:42.8994687Z       "id": "REQ-SHELL-1",
2026-06-15T10:02:42.8995555Z       "title": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)",
2026-06-15T10:02:42.8995660Z       "requiredStages": [
2026-06-15T10:02:42.8995752Z         "impl",
2026-06-15T10:02:42.8995846Z         "unit",
2026-06-15T10:02:42.8995942Z         "int"
2026-06-15T10:02:42.8996028Z       ],
2026-06-15T10:02:42.8996124Z       "stages": {
2026-06-15T10:02:42.8996213Z         "doc": {
2026-06-15T10:02:42.8996323Z           "complete": false,
2026-06-15T10:02:42.8996420Z           "evidence": []
2026-06-15T10:02:42.8996509Z         },
2026-06-15T10:02:42.8996598Z         "impl": {
2026-06-15T10:02:42.8996694Z           "complete": true,
2026-06-15T10:02:42.8996786Z           "evidence": [
2026-06-15T10:02:42.8996871Z             {
2026-06-15T10:02:42.8997003Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T10:02:42.8997095Z               "line": 94
2026-06-15T10:02:42.8997172Z             },
2026-06-15T10:02:42.8997256Z             {
2026-06-15T10:02:42.8997376Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T10:02:42.8997481Z               "line": 121
2026-06-15T10:02:42.8997571Z             },
2026-06-15T10:02:42.8997657Z             {
2026-06-15T10:02:42.8997772Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T10:02:42.8997872Z               "line": 27
2026-06-15T10:02:42.8997962Z             },
2026-06-15T10:02:42.8998044Z             {
2026-06-15T10:02:42.8998168Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T10:02:42.8998253Z               "line": 52
2026-06-15T10:02:42.8998349Z             },
2026-06-15T10:02:42.8998425Z             {
2026-06-15T10:02:42.8998543Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T10:02:42.8998641Z               "line": 132
2026-06-15T10:02:42.8998721Z             },
2026-06-15T10:02:42.8998815Z             {
2026-06-15T10:02:42.8998929Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T10:02:42.8999113Z               "line": 164
2026-06-15T10:02:42.8999198Z             },
2026-06-15T10:02:42.8999275Z             {
2026-06-15T10:02:42.8999400Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.8999484Z               "line": 22
2026-06-15T10:02:42.8999681Z             },
2026-06-15T10:02:42.8999761Z             {
2026-06-15T10:02:42.8999895Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.9000086Z               "line": 65
2026-06-15T10:02:42.9000171Z             },
2026-06-15T10:02:42.9000253Z             {
2026-06-15T10:02:42.9000377Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.9000471Z               "line": 76
2026-06-15T10:02:42.9000558Z             },
2026-06-15T10:02:42.9000639Z             {
2026-06-15T10:02:42.9000762Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.9000844Z               "line": 150
2026-06-15T10:02:42.9000940Z             },
2026-06-15T10:02:42.9001019Z             {
2026-06-15T10:02:42.9001139Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.9001241Z               "line": 209
2026-06-15T10:02:42.9001320Z             },
2026-06-15T10:02:42.9001411Z             {
2026-06-15T10:02:42.9001527Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.9001630Z               "line": 249
2026-06-15T10:02:42.9001715Z             },
2026-06-15T10:02:42.9001801Z             {
2026-06-15T10:02:42.9001934Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.9002013Z               "line": 270
2026-06-15T10:02:42.9002098Z             },
2026-06-15T10:02:42.9002185Z             {
2026-06-15T10:02:42.9002300Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.9002380Z               "line": 283
2026-06-15T10:02:42.9002476Z             },
2026-06-15T10:02:42.9002557Z             {
2026-06-15T10:02:42.9002671Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.9002762Z               "line": 217
2026-06-15T10:02:42.9002844Z             },
2026-06-15T10:02:42.9002929Z             {
2026-06-15T10:02:42.9003043Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.9003144Z               "line": 233
2026-06-15T10:02:42.9003239Z             },
2026-06-15T10:02:42.9003324Z             {
2026-06-15T10:02:42.9003450Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T10:02:42.9003544Z               "line": 41
2026-06-15T10:02:42.9003629Z             },
2026-06-15T10:02:42.9003716Z             {
2026-06-15T10:02:42.9003840Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T10:02:42.9003939Z               "line": 222
2026-06-15T10:02:42.9004026Z             },
2026-06-15T10:02:42.9004113Z             {
2026-06-15T10:02:42.9004216Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-15T10:02:42.9004315Z               "line": 173
2026-06-15T10:02:42.9004401Z             },
2026-06-15T10:02:42.9004495Z             {
2026-06-15T10:02:42.9004604Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T10:02:42.9004685Z               "line": 319
2026-06-15T10:02:42.9004766Z             },
2026-06-15T10:02:42.9004848Z             {
2026-06-15T10:02:42.9004965Z               "path": "crates/spt/src/api/mod.rs",
2026-06-15T10:02:42.9005058Z               "line": 371
2026-06-15T10:02:42.9005143Z             },
2026-06-15T10:02:42.9005243Z             {
2026-06-15T10:02:42.9005358Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.9005448Z               "line": 329
2026-06-15T10:02:42.9005529Z             },
2026-06-15T10:02:42.9005624Z             {
2026-06-15T10:02:42.9005725Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9005815Z               "line": 5454
2026-06-15T10:02:42.9005910Z             },
2026-06-15T10:02:42.9005992Z             {
2026-06-15T10:02:42.9006101Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9006192Z               "line": 5604
2026-06-15T10:02:42.9006287Z             },
2026-06-15T10:02:42.9006374Z             {
2026-06-15T10:02:42.9006477Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9006573Z               "line": 5641
2026-06-15T10:02:42.9006660Z             }
2026-06-15T10:02:42.9006864Z           ]
2026-06-15T10:02:42.9006946Z         },
2026-06-15T10:02:42.9007036Z         "int": {
2026-06-15T10:02:42.9007135Z           "complete": true,
2026-06-15T10:02:42.9007302Z           "evidence": [
2026-06-15T10:02:42.9007398Z             {
2026-06-15T10:02:42.9007530Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T10:02:42.9007631Z               "line": 709
2026-06-15T10:02:42.9007717Z             },
2026-06-15T10:02:42.9007802Z             {
2026-06-15T10:02:42.9007932Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T10:02:42.9008017Z               "line": 8
2026-06-15T10:02:42.9008107Z             },
2026-06-15T10:02:42.9008193Z             {
2026-06-15T10:02:42.9008313Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-15T10:02:42.9008413Z               "line": 49
2026-06-15T10:02:42.9008498Z             },
2026-06-15T10:02:42.9008590Z             {
2026-06-15T10:02:42.9008718Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.9008813Z               "line": 709
2026-06-15T10:02:42.9008895Z             },
2026-06-15T10:02:42.9009071Z             {
2026-06-15T10:02:42.9009181Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.9009286Z               "line": 1119
2026-06-15T10:02:42.9009365Z             },
2026-06-15T10:02:42.9009446Z             {
2026-06-15T10:02:42.9009575Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-15T10:02:42.9009655Z               "line": 17
2026-06-15T10:02:42.9009754Z             },
2026-06-15T10:02:42.9009835Z             {
2026-06-15T10:02:42.9009946Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-15T10:02:42.9010039Z               "line": 14
2026-06-15T10:02:42.9010116Z             }
2026-06-15T10:02:42.9010208Z           ]
2026-06-15T10:02:42.9010284Z         },
2026-06-15T10:02:42.9010373Z         "unit": {
2026-06-15T10:02:42.9010470Z           "complete": true,
2026-06-15T10:02:42.9010569Z           "evidence": [
2026-06-15T10:02:42.9010664Z             {
2026-06-15T10:02:42.9010785Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T10:02:42.9010894Z               "line": 234
2026-06-15T10:02:42.9010975Z             },
2026-06-15T10:02:42.9011060Z             {
2026-06-15T10:02:42.9011181Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T10:02:42.9011266Z               "line": 267
2026-06-15T10:02:42.9011356Z             },
2026-06-15T10:02:42.9011443Z             {
2026-06-15T10:02:42.9011575Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T10:02:42.9011656Z               "line": 307
2026-06-15T10:02:42.9011753Z             },
2026-06-15T10:02:42.9011838Z             {
2026-06-15T10:02:42.9011961Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.9012063Z               "line": 571
2026-06-15T10:02:42.9012144Z             },
2026-06-15T10:02:42.9012228Z             {
2026-06-15T10:02:42.9012351Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.9012457Z               "line": 644
2026-06-15T10:02:42.9012549Z             },
2026-06-15T10:02:42.9012635Z             {
2026-06-15T10:02:42.9012755Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.9012841Z               "line": 788
2026-06-15T10:02:42.9012935Z             },
2026-06-15T10:02:42.9013017Z             {
2026-06-15T10:02:42.9013136Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.9013231Z               "line": 595
2026-06-15T10:02:42.9013307Z             },
2026-06-15T10:02:42.9013404Z             {
2026-06-15T10:02:42.9013527Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-15T10:02:42.9013627Z               "line": 399
2026-06-15T10:02:42.9013709Z             },
2026-06-15T10:02:42.9013803Z             {
2026-06-15T10:02:42.9013913Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9014005Z               "line": 7236
2026-06-15T10:02:42.9014199Z             },
2026-06-15T10:02:42.9014281Z             {
2026-06-15T10:02:42.9014381Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9014562Z               "line": 7560
2026-06-15T10:02:42.9014654Z             },
2026-06-15T10:02:42.9014738Z             {
2026-06-15T10:02:42.9014842Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9014937Z               "line": 7977
2026-06-15T10:02:42.9015013Z             }
2026-06-15T10:02:42.9015093Z           ]
2026-06-15T10:02:42.9015182Z         }
2026-06-15T10:02:42.9015269Z       }
2026-06-15T10:02:42.9015360Z     },
2026-06-15T10:02:42.9015440Z     {
2026-06-15T10:02:42.9015540Z       "id": "REQ-SHELL-2",
2026-06-15T10:02:42.9017187Z       "title": "Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)",
2026-06-15T10:02:42.9017309Z       "requiredStages": [
2026-06-15T10:02:42.9017405Z         "impl",
2026-06-15T10:02:42.9017497Z         "unit",
2026-06-15T10:02:42.9017592Z         "int"
2026-06-15T10:02:42.9017676Z       ],
2026-06-15T10:02:42.9017766Z       "stages": {
2026-06-15T10:02:42.9017853Z         "doc": {
2026-06-15T10:02:42.9017944Z           "complete": false,
2026-06-15T10:02:42.9018042Z           "evidence": []
2026-06-15T10:02:42.9018119Z         },
2026-06-15T10:02:42.9018206Z         "impl": {
2026-06-15T10:02:42.9018296Z           "complete": true,
2026-06-15T10:02:42.9018400Z           "evidence": [
2026-06-15T10:02:42.9018482Z             {
2026-06-15T10:02:42.9018616Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.9018710Z               "line": 214
2026-06-15T10:02:42.9018797Z             },
2026-06-15T10:02:42.9018887Z             {
2026-06-15T10:02:42.9019097Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T10:02:42.9019183Z               "line": 403
2026-06-15T10:02:42.9019263Z             },
2026-06-15T10:02:42.9019349Z             {
2026-06-15T10:02:42.9019479Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-15T10:02:42.9019569Z               "line": 250
2026-06-15T10:02:42.9019654Z             },
2026-06-15T10:02:42.9019736Z             {
2026-06-15T10:02:42.9019869Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.9019949Z               "line": 353
2026-06-15T10:02:42.9020044Z             },
2026-06-15T10:02:42.9020135Z             {
2026-06-15T10:02:42.9020256Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T10:02:42.9020351Z               "line": 30
2026-06-15T10:02:42.9020443Z             },
2026-06-15T10:02:42.9020538Z             {
2026-06-15T10:02:42.9020657Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T10:02:42.9020738Z               "line": 152
2026-06-15T10:02:42.9020824Z             },
2026-06-15T10:02:42.9020909Z             {
2026-06-15T10:02:42.9021035Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T10:02:42.9021120Z               "line": 188
2026-06-15T10:02:42.9021215Z             },
2026-06-15T10:02:42.9021305Z             {
2026-06-15T10:02:42.9021426Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T10:02:42.9025266Z               "line": 347
2026-06-15T10:02:42.9025378Z             },
2026-06-15T10:02:42.9025473Z             {
2026-06-15T10:02:42.9025606Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.9025705Z               "line": 348
2026-06-15T10:02:42.9025785Z             },
2026-06-15T10:02:42.9025863Z             {
2026-06-15T10:02:42.9026005Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-15T10:02:42.9026263Z               "line": 115
2026-06-15T10:02:42.9026358Z             },
2026-06-15T10:02:42.9026439Z             {
2026-06-15T10:02:42.9026578Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.9026769Z               "line": 120
2026-06-15T10:02:42.9026854Z             },
2026-06-15T10:02:42.9026940Z             {
2026-06-15T10:02:42.9027059Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.9027155Z               "line": 363
2026-06-15T10:02:42.9027240Z             },
2026-06-15T10:02:42.9027326Z             {
2026-06-15T10:02:42.9027451Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.9027545Z               "line": 472
2026-06-15T10:02:42.9027636Z             },
2026-06-15T10:02:42.9027713Z             {
2026-06-15T10:02:42.9027832Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T10:02:42.9027917Z               "line": 24
2026-06-15T10:02:42.9028003Z             },
2026-06-15T10:02:42.9028105Z             {
2026-06-15T10:02:42.9028226Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T10:02:42.9028326Z               "line": 76
2026-06-15T10:02:42.9028417Z             },
2026-06-15T10:02:42.9028504Z             {
2026-06-15T10:02:42.9028621Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T10:02:42.9028703Z               "line": 154
2026-06-15T10:02:42.9028795Z             },
2026-06-15T10:02:42.9028875Z             {
2026-06-15T10:02:42.9029085Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T10:02:42.9029176Z               "line": 177
2026-06-15T10:02:42.9029265Z             },
2026-06-15T10:02:42.9029347Z             {
2026-06-15T10:02:42.9029471Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T10:02:42.9029566Z               "line": 273
2026-06-15T10:02:42.9029647Z             },
2026-06-15T10:02:42.9029729Z             {
2026-06-15T10:02:42.9029843Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T10:02:42.9029943Z               "line": 455
2026-06-15T10:02:42.9030039Z             },
2026-06-15T10:02:42.9030115Z             {
2026-06-15T10:02:42.9030243Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T10:02:42.9030326Z               "line": 537
2026-06-15T10:02:42.9030424Z             },
2026-06-15T10:02:42.9030504Z             {
2026-06-15T10:02:42.9030628Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T10:02:42.9030733Z               "line": 27
2026-06-15T10:02:42.9030807Z             },
2026-06-15T10:02:42.9030902Z             {
2026-06-15T10:02:42.9031023Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T10:02:42.9031118Z               "line": 43
2026-06-15T10:02:42.9031203Z             },
2026-06-15T10:02:42.9031289Z             {
2026-06-15T10:02:42.9031418Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.9031498Z               "line": 393
2026-06-15T10:02:42.9031590Z             },
2026-06-15T10:02:42.9031676Z             {
2026-06-15T10:02:42.9031785Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9031866Z               "line": 1670
2026-06-15T10:02:42.9031952Z             },
2026-06-15T10:02:42.9032047Z             {
2026-06-15T10:02:42.9032151Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9032253Z               "line": 5468
2026-06-15T10:02:42.9032333Z             },
2026-06-15T10:02:42.9032419Z             {
2026-06-15T10:02:42.9032524Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9032611Z               "line": 5529
2026-06-15T10:02:42.9032690Z             },
2026-06-15T10:02:42.9032776Z             {
2026-06-15T10:02:42.9032882Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9032973Z               "line": 5557
2026-06-15T10:02:42.9033063Z             },
2026-06-15T10:02:42.9033139Z             {
2026-06-15T10:02:42.9033240Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9033443Z               "line": 5611
2026-06-15T10:02:42.9033524Z             },
2026-06-15T10:02:42.9033623Z             {
2026-06-15T10:02:42.9033722Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9033908Z               "line": 5727
2026-06-15T10:02:42.9033989Z             },
2026-06-15T10:02:42.9034084Z             {
2026-06-15T10:02:42.9034195Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9034281Z               "line": 5780
2026-06-15T10:02:42.9034360Z             },
2026-06-15T10:02:42.9034447Z             {
2026-06-15T10:02:42.9034561Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T10:02:42.9034642Z               "line": 298
2026-06-15T10:02:42.9034737Z             },
2026-06-15T10:02:42.9034820Z             {
2026-06-15T10:02:42.9034923Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T10:02:42.9035024Z               "line": 339
2026-06-15T10:02:42.9035105Z             }
2026-06-15T10:02:42.9035191Z           ]
2026-06-15T10:02:42.9035291Z         },
2026-06-15T10:02:42.9035381Z         "int": {
2026-06-15T10:02:42.9035473Z           "complete": true,
2026-06-15T10:02:42.9035562Z           "evidence": [
2026-06-15T10:02:42.9035663Z             {
2026-06-15T10:02:42.9035774Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T10:02:42.9035872Z               "line": 702
2026-06-15T10:02:42.9035967Z             },
2026-06-15T10:02:42.9036043Z             {
2026-06-15T10:02:42.9036161Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.9036246Z               "line": 709
2026-06-15T10:02:42.9036331Z             },
2026-06-15T10:02:42.9036418Z             {
2026-06-15T10:02:42.9036546Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.9036645Z               "line": 1119
2026-06-15T10:02:42.9036723Z             },
2026-06-15T10:02:42.9036818Z             {
2026-06-15T10:02:42.9036956Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-15T10:02:42.9037058Z               "line": 18
2026-06-15T10:02:42.9037143Z             }
2026-06-15T10:02:42.9037237Z           ]
2026-06-15T10:02:42.9037324Z         },
2026-06-15T10:02:42.9037419Z         "unit": {
2026-06-15T10:02:42.9037519Z           "complete": true,
2026-06-15T10:02:42.9037609Z           "evidence": [
2026-06-15T10:02:42.9037702Z             {
2026-06-15T10:02:42.9037824Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-15T10:02:42.9037915Z               "line": 431
2026-06-15T10:02:42.9038007Z             },
2026-06-15T10:02:42.9038091Z             {
2026-06-15T10:02:42.9038215Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-15T10:02:42.9038302Z               "line": 796
2026-06-15T10:02:42.9038401Z             },
2026-06-15T10:02:42.9038477Z             {
2026-06-15T10:02:42.9038602Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.9038707Z               "line": 677
2026-06-15T10:02:42.9038791Z             },
2026-06-15T10:02:42.9038876Z             {
2026-06-15T10:02:42.9039064Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.9039167Z               "line": 726
2026-06-15T10:02:42.9039253Z             },
2026-06-15T10:02:42.9039350Z             {
2026-06-15T10:02:42.9039478Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-15T10:02:42.9039563Z               "line": 750
2026-06-15T10:02:42.9039655Z             },
2026-06-15T10:02:42.9039745Z             {
2026-06-15T10:02:42.9039859Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T10:02:42.9039955Z               "line": 602
2026-06-15T10:02:42.9040045Z             },
2026-06-15T10:02:42.9040135Z             {
2026-06-15T10:02:42.9040251Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T10:02:42.9040350Z               "line": 623
2026-06-15T10:02:42.9040436Z             },
2026-06-15T10:02:42.9040522Z             {
2026-06-15T10:02:42.9040637Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T10:02:42.9040861Z               "line": 659
2026-06-15T10:02:42.9040956Z             },
2026-06-15T10:02:42.9041032Z             {
2026-06-15T10:02:42.9041316Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T10:02:42.9041405Z               "line": 713
2026-06-15T10:02:42.9041496Z             },
2026-06-15T10:02:42.9041578Z             {
2026-06-15T10:02:42.9041706Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T10:02:42.9041791Z               "line": 731
2026-06-15T10:02:42.9041873Z             },
2026-06-15T10:02:42.9041969Z             {
2026-06-15T10:02:42.9042082Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T10:02:42.9042179Z               "line": 765
2026-06-15T10:02:42.9042273Z             },
2026-06-15T10:02:42.9042345Z             {
2026-06-15T10:02:42.9042474Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-15T10:02:42.9042555Z               "line": 840
2026-06-15T10:02:42.9042655Z             },
2026-06-15T10:02:42.9042741Z             {
2026-06-15T10:02:42.9042870Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-15T10:02:42.9042970Z               "line": 80
2026-06-15T10:02:42.9043050Z             },
2026-06-15T10:02:42.9043137Z             {
2026-06-15T10:02:42.9043236Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9043341Z               "line": 6490
2026-06-15T10:02:42.9043424Z             },
2026-06-15T10:02:42.9043519Z             {
2026-06-15T10:02:42.9043623Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9043714Z               "line": 7314
2026-06-15T10:02:42.9043800Z             },
2026-06-15T10:02:42.9043880Z             {
2026-06-15T10:02:42.9043984Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9044065Z               "line": 7384
2026-06-15T10:02:42.9044151Z             },
2026-06-15T10:02:42.9044239Z             {
2026-06-15T10:02:42.9044343Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9044450Z               "line": 7422
2026-06-15T10:02:42.9044531Z             }
2026-06-15T10:02:42.9044620Z           ]
2026-06-15T10:02:42.9044707Z         }
2026-06-15T10:02:42.9044802Z       }
2026-06-15T10:02:42.9044892Z     },
2026-06-15T10:02:42.9044978Z     {
2026-06-15T10:02:42.9045079Z       "id": "REQ-START-1",
2026-06-15T10:02:42.9045264Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-15T10:02:42.9045370Z       "requiredStages": [
2026-06-15T10:02:42.9045450Z         "impl",
2026-06-15T10:02:42.9045541Z         "unit"
2026-06-15T10:02:42.9045626Z       ],
2026-06-15T10:02:42.9045709Z       "stages": {
2026-06-15T10:02:42.9045798Z         "doc": {
2026-06-15T10:02:42.9045893Z           "complete": false,
2026-06-15T10:02:42.9045990Z           "evidence": []
2026-06-15T10:02:42.9046076Z         },
2026-06-15T10:02:42.9046170Z         "impl": {
2026-06-15T10:02:42.9046266Z           "complete": true,
2026-06-15T10:02:42.9046363Z           "evidence": [
2026-06-15T10:02:42.9046456Z             {
2026-06-15T10:02:42.9046574Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T10:02:42.9046675Z               "line": 16
2026-06-15T10:02:42.9046759Z             }
2026-06-15T10:02:42.9046853Z           ]
2026-06-15T10:02:42.9046944Z         },
2026-06-15T10:02:42.9047031Z         "int": {
2026-06-15T10:02:42.9047130Z           "complete": false,
2026-06-15T10:02:42.9047220Z           "evidence": []
2026-06-15T10:02:42.9047312Z         },
2026-06-15T10:02:42.9047402Z         "unit": {
2026-06-15T10:02:42.9047502Z           "complete": true,
2026-06-15T10:02:42.9047603Z           "evidence": [
2026-06-15T10:02:42.9047683Z             {
2026-06-15T10:02:42.9047788Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T10:02:42.9047879Z               "line": 43
2026-06-15T10:02:42.9047970Z             },
2026-06-15T10:02:42.9048046Z             {
2026-06-15T10:02:42.9048169Z               "path": "crates/spt-store/src/seed.rs",
2026-06-15T10:02:42.9048346Z               "line": 59
2026-06-15T10:02:42.9048422Z             }
2026-06-15T10:02:42.9048518Z           ]
2026-06-15T10:02:42.9048609Z         }
2026-06-15T10:02:42.9048770Z       }
2026-06-15T10:02:42.9048857Z     },
2026-06-15T10:02:42.9049023Z     {
2026-06-15T10:02:42.9049123Z       "id": "REQ-START-2",
2026-06-15T10:02:42.9049276Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-15T10:02:42.9049375Z       "requiredStages": [
2026-06-15T10:02:42.9049460Z         "impl",
2026-06-15T10:02:42.9049561Z         "unit",
2026-06-15T10:02:42.9049638Z         "int"
2026-06-15T10:02:42.9049732Z       ],
2026-06-15T10:02:42.9049818Z       "stages": {
2026-06-15T10:02:42.9049900Z         "doc": {
2026-06-15T10:02:42.9050004Z           "complete": false,
2026-06-15T10:02:42.9050099Z           "evidence": []
2026-06-15T10:02:42.9050196Z         },
2026-06-15T10:02:42.9050281Z         "impl": {
2026-06-15T10:02:42.9050381Z           "complete": true,
2026-06-15T10:02:42.9050487Z           "evidence": [
2026-06-15T10:02:42.9050563Z             {
2026-06-15T10:02:42.9050691Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.9050777Z               "line": 16
2026-06-15T10:02:42.9050873Z             },
2026-06-15T10:02:42.9050953Z             {
2026-06-15T10:02:42.9051068Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.9051159Z               "line": 100
2026-06-15T10:02:42.9051239Z             },
2026-06-15T10:02:42.9051325Z             {
2026-06-15T10:02:42.9051436Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.9051531Z               "line": 240
2026-06-15T10:02:42.9051620Z             }
2026-06-15T10:02:42.9051710Z           ]
2026-06-15T10:02:42.9051786Z         },
2026-06-15T10:02:42.9051871Z         "int": {
2026-06-15T10:02:42.9051980Z           "complete": true,
2026-06-15T10:02:42.9052061Z           "evidence": [
2026-06-15T10:02:42.9052143Z             {
2026-06-15T10:02:42.9052270Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T10:02:42.9052366Z               "line": 186
2026-06-15T10:02:42.9052453Z             }
2026-06-15T10:02:42.9052529Z           ]
2026-06-15T10:02:42.9052608Z         },
2026-06-15T10:02:42.9052690Z         "unit": {
2026-06-15T10:02:42.9052791Z           "complete": true,
2026-06-15T10:02:42.9052876Z           "evidence": [
2026-06-15T10:02:42.9052957Z             {
2026-06-15T10:02:42.9053082Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.9053167Z               "line": 468
2026-06-15T10:02:42.9053257Z             },
2026-06-15T10:02:42.9053334Z             {
2026-06-15T10:02:42.9053453Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.9053534Z               "line": 501
2026-06-15T10:02:42.9053625Z             }
2026-06-15T10:02:42.9053712Z           ]
2026-06-15T10:02:42.9053801Z         }
2026-06-15T10:02:42.9053891Z       }
2026-06-15T10:02:42.9053964Z     },
2026-06-15T10:02:42.9054055Z     {
2026-06-15T10:02:42.9054148Z       "id": "REQ-START-3",
2026-06-15T10:02:42.9054332Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-15T10:02:42.9054436Z       "requiredStages": [
2026-06-15T10:02:42.9054515Z         "impl",
2026-06-15T10:02:42.9054611Z         "unit",
2026-06-15T10:02:42.9054697Z         "int"
2026-06-15T10:02:42.9054790Z       ],
2026-06-15T10:02:42.9054875Z       "stages": {
2026-06-15T10:02:42.9054966Z         "doc": {
2026-06-15T10:02:42.9055067Z           "complete": false,
2026-06-15T10:02:42.9055151Z           "evidence": []
2026-06-15T10:02:42.9055232Z         },
2026-06-15T10:02:42.9055320Z         "impl": {
2026-06-15T10:02:42.9055420Z           "complete": true,
2026-06-15T10:02:42.9055504Z           "evidence": [
2026-06-15T10:02:42.9055591Z             {
2026-06-15T10:02:42.9055720Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T10:02:42.9055809Z               "line": 23
2026-06-15T10:02:42.9055906Z             },
2026-06-15T10:02:42.9056101Z             {
2026-06-15T10:02:42.9056226Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T10:02:42.9056316Z               "line": 205
2026-06-15T10:02:42.9056501Z             },
2026-06-15T10:02:42.9056584Z             {
2026-06-15T10:02:42.9056701Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T10:02:42.9056802Z               "line": 221
2026-06-15T10:02:42.9056889Z             },
2026-06-15T10:02:42.9056978Z             {
2026-06-15T10:02:42.9057092Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.9057191Z               "line": 17
2026-06-15T10:02:42.9057273Z             },
2026-06-15T10:02:42.9057356Z             {
2026-06-15T10:02:42.9057475Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.9057562Z               "line": 43
2026-06-15T10:02:42.9057657Z             },
2026-06-15T10:02:42.9057738Z             {
2026-06-15T10:02:42.9057858Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.9057958Z               "line": 101
2026-06-15T10:02:42.9058043Z             }
2026-06-15T10:02:42.9058124Z           ]
2026-06-15T10:02:42.9058210Z         },
2026-06-15T10:02:42.9058305Z         "int": {
2026-06-15T10:02:42.9058400Z           "complete": true,
2026-06-15T10:02:42.9058492Z           "evidence": [
2026-06-15T10:02:42.9058596Z             {
2026-06-15T10:02:42.9058715Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-15T10:02:42.9058812Z               "line": 440
2026-06-15T10:02:42.9058887Z             }
2026-06-15T10:02:42.9059058Z           ]
2026-06-15T10:02:42.9059141Z         },
2026-06-15T10:02:42.9059225Z         "unit": {
2026-06-15T10:02:42.9059321Z           "complete": true,
2026-06-15T10:02:42.9059412Z           "evidence": [
2026-06-15T10:02:42.9059498Z             {
2026-06-15T10:02:42.9059616Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T10:02:42.9059713Z               "line": 331
2026-06-15T10:02:42.9059794Z             },
2026-06-15T10:02:42.9059878Z             {
2026-06-15T10:02:42.9059996Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T10:02:42.9060093Z               "line": 352
2026-06-15T10:02:42.9060184Z             },
2026-06-15T10:02:42.9060264Z             {
2026-06-15T10:02:42.9060383Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-15T10:02:42.9060470Z               "line": 362
2026-06-15T10:02:42.9060564Z             },
2026-06-15T10:02:42.9060645Z             {
2026-06-15T10:02:42.9060751Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.9060841Z               "line": 469
2026-06-15T10:02:42.9060927Z             },
2026-06-15T10:02:42.9061022Z             {
2026-06-15T10:02:42.9061137Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.9061222Z               "line": 502
2026-06-15T10:02:42.9061313Z             },
2026-06-15T10:02:42.9061390Z             {
2026-06-15T10:02:42.9061508Z               "path": "crates/spt/src/api/startup.rs",
2026-06-15T10:02:42.9061603Z               "line": 510
2026-06-15T10:02:42.9061700Z             }
2026-06-15T10:02:42.9061785Z           ]
2026-06-15T10:02:42.9061876Z         }
2026-06-15T10:02:42.9061957Z       }
2026-06-15T10:02:42.9062034Z     },
2026-06-15T10:02:42.9062123Z     {
2026-06-15T10:02:42.9062213Z       "id": "REQ-START-4",
2026-06-15T10:02:42.9062356Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-15T10:02:42.9062450Z       "requiredStages": [
2026-06-15T10:02:42.9062540Z         "impl",
2026-06-15T10:02:42.9062635Z         "unit"
2026-06-15T10:02:42.9062717Z       ],
2026-06-15T10:02:42.9062817Z       "stages": {
2026-06-15T10:02:42.9062902Z         "doc": {
2026-06-15T10:02:42.9063003Z           "complete": false,
2026-06-15T10:02:42.9063103Z           "evidence": []
2026-06-15T10:02:42.9063183Z         },
2026-06-15T10:02:42.9063280Z         "impl": {
2026-06-15T10:02:42.9063365Z           "complete": true,
2026-06-15T10:02:42.9063570Z           "evidence": [
2026-06-15T10:02:42.9063656Z             {
2026-06-15T10:02:42.9063785Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.9063990Z               "line": 461
2026-06-15T10:02:42.9064071Z             }
2026-06-15T10:02:42.9064165Z           ]
2026-06-15T10:02:42.9064252Z         },
2026-06-15T10:02:42.9064342Z         "int": {
2026-06-15T10:02:42.9064433Z           "complete": false,
2026-06-15T10:02:42.9064519Z           "evidence": []
2026-06-15T10:02:42.9064605Z         },
2026-06-15T10:02:42.9064695Z         "unit": {
2026-06-15T10:02:42.9064790Z           "complete": true,
2026-06-15T10:02:42.9064882Z           "evidence": [
2026-06-15T10:02:42.9064963Z             {
2026-06-15T10:02:42.9065085Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.9065185Z               "line": 900
2026-06-15T10:02:42.9065266Z             }
2026-06-15T10:02:42.9065350Z           ]
2026-06-15T10:02:42.9065445Z         }
2026-06-15T10:02:42.9065526Z       }
2026-06-15T10:02:42.9065617Z     },
2026-06-15T10:02:42.9065702Z     {
2026-06-15T10:02:42.9065802Z       "id": "REQ-STORE-1",
2026-06-15T10:02:42.9066684Z       "title": "spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)",
2026-06-15T10:02:42.9066795Z       "requiredStages": [
2026-06-15T10:02:42.9066881Z         "impl",
2026-06-15T10:02:42.9066966Z         "unit"
2026-06-15T10:02:42.9067057Z       ],
2026-06-15T10:02:42.9067144Z       "stages": {
2026-06-15T10:02:42.9067224Z         "doc": {
2026-06-15T10:02:42.9067324Z           "complete": false,
2026-06-15T10:02:42.9067420Z           "evidence": []
2026-06-15T10:02:42.9067511Z         },
2026-06-15T10:02:42.9067585Z         "impl": {
2026-06-15T10:02:42.9067684Z           "complete": true,
2026-06-15T10:02:42.9067790Z           "evidence": [
2026-06-15T10:02:42.9067874Z             {
2026-06-15T10:02:42.9068011Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.9068107Z               "line": 23
2026-06-15T10:02:42.9068194Z             },
2026-06-15T10:02:42.9068278Z             {
2026-06-15T10:02:42.9068403Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.9068498Z               "line": 46
2026-06-15T10:02:42.9068579Z             },
2026-06-15T10:02:42.9068664Z             {
2026-06-15T10:02:42.9068789Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.9068884Z               "line": 97
2026-06-15T10:02:42.9069043Z             },
2026-06-15T10:02:42.9069137Z             {
2026-06-15T10:02:42.9069256Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.9069347Z               "line": 125
2026-06-15T10:02:42.9069447Z             },
2026-06-15T10:02:42.9069528Z             {
2026-06-15T10:02:42.9069662Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.9069757Z               "line": 181
2026-06-15T10:02:42.9069852Z             },
2026-06-15T10:02:42.9069938Z             {
2026-06-15T10:02:42.9070054Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.9070152Z               "line": 205
2026-06-15T10:02:42.9070234Z             },
2026-06-15T10:02:42.9070321Z             {
2026-06-15T10:02:42.9070438Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.9070538Z               "line": 441
2026-06-15T10:02:42.9070633Z             },
2026-06-15T10:02:42.9070715Z             {
2026-06-15T10:02:42.9070838Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.9070919Z               "line": 25
2026-06-15T10:02:42.9071006Z             },
2026-06-15T10:02:42.9071092Z             {
2026-06-15T10:02:42.9071205Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.9071401Z               "line": 120
2026-06-15T10:02:42.9071482Z             },
2026-06-15T10:02:42.9071568Z             {
2026-06-15T10:02:42.9071692Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.9071878Z               "line": 148
2026-06-15T10:02:42.9071969Z             },
2026-06-15T10:02:42.9072059Z             {
2026-06-15T10:02:42.9072183Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.9072274Z               "line": 165
2026-06-15T10:02:42.9072369Z             },
2026-06-15T10:02:42.9072445Z             {
2026-06-15T10:02:42.9072571Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.9072664Z               "line": 180
2026-06-15T10:02:42.9072745Z             },
2026-06-15T10:02:42.9072835Z             {
2026-06-15T10:02:42.9072954Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.9073057Z               "line": 198
2026-06-15T10:02:42.9073138Z             },
2026-06-15T10:02:42.9073233Z             {
2026-06-15T10:02:42.9073358Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.9073438Z               "line": 207
2026-06-15T10:02:42.9073534Z             },
2026-06-15T10:02:42.9073611Z             {
2026-06-15T10:02:42.9073729Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T10:02:42.9073820Z               "line": 16
2026-06-15T10:02:42.9073911Z             },
2026-06-15T10:02:42.9073996Z             {
2026-06-15T10:02:42.9074116Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T10:02:42.9074212Z               "line": 63
2026-06-15T10:02:42.9074292Z             }
2026-06-15T10:02:42.9074386Z           ]
2026-06-15T10:02:42.9074464Z         },
2026-06-15T10:02:42.9074559Z         "int": {
2026-06-15T10:02:42.9074664Z           "complete": false,
2026-06-15T10:02:42.9074755Z           "evidence": []
2026-06-15T10:02:42.9074851Z         },
2026-06-15T10:02:42.9074931Z         "unit": {
2026-06-15T10:02:42.9075035Z           "complete": true,
2026-06-15T10:02:42.9075123Z           "evidence": [
2026-06-15T10:02:42.9075203Z             {
2026-06-15T10:02:42.9075322Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.9075418Z               "line": 558
2026-06-15T10:02:42.9075504Z             },
2026-06-15T10:02:42.9075579Z             {
2026-06-15T10:02:42.9075706Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.9075793Z               "line": 568
2026-06-15T10:02:42.9075873Z             },
2026-06-15T10:02:42.9075966Z             {
2026-06-15T10:02:42.9076086Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.9076192Z               "line": 590
2026-06-15T10:02:42.9076272Z             },
2026-06-15T10:02:42.9076362Z             {
2026-06-15T10:02:42.9076482Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.9076582Z               "line": 606
2026-06-15T10:02:42.9076677Z             },
2026-06-15T10:02:42.9076769Z             {
2026-06-15T10:02:42.9076892Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-15T10:02:42.9076982Z               "line": 629
2026-06-15T10:02:42.9077079Z             },
2026-06-15T10:02:42.9077168Z             {
2026-06-15T10:02:42.9077293Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.9077389Z               "line": 472
2026-06-15T10:02:42.9077473Z             },
2026-06-15T10:02:42.9077564Z             {
2026-06-15T10:02:42.9077689Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-15T10:02:42.9077793Z               "line": 507
2026-06-15T10:02:42.9077884Z             },
2026-06-15T10:02:42.9077966Z             {
2026-06-15T10:02:42.9078094Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T10:02:42.9078178Z               "line": 120
2026-06-15T10:02:42.9078273Z             },
2026-06-15T10:02:42.9078355Z             {
2026-06-15T10:02:42.9078476Z               "path": "crates/spt-store/src/project.rs",
2026-06-15T10:02:42.9078648Z               "line": 128
2026-06-15T10:02:42.9078730Z             }
2026-06-15T10:02:42.9078810Z           ]
2026-06-15T10:02:42.9079040Z         }
2026-06-15T10:02:42.9079134Z       }
2026-06-15T10:02:42.9079220Z     },
2026-06-15T10:02:42.9079317Z     {
2026-06-15T10:02:42.9079435Z       "id": "REQ-SUBNET-1",
2026-06-15T10:02:42.9079806Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-15T10:02:42.9079917Z       "requiredStages": [
2026-06-15T10:02:42.9079998Z         "impl",
2026-06-15T10:02:42.9080088Z         "unit"
2026-06-15T10:02:42.9080169Z       ],
2026-06-15T10:02:42.9080261Z       "stages": {
2026-06-15T10:02:42.9080340Z         "doc": {
2026-06-15T10:02:42.9080431Z           "complete": false,
2026-06-15T10:02:42.9080533Z           "evidence": []
2026-06-15T10:02:42.9080614Z         },
2026-06-15T10:02:42.9080707Z         "impl": {
2026-06-15T10:02:42.9080804Z           "complete": true,
2026-06-15T10:02:42.9080895Z           "evidence": [
2026-06-15T10:02:42.9080980Z             {
2026-06-15T10:02:42.9081116Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.9081213Z               "line": 281
2026-06-15T10:02:42.9081295Z             },
2026-06-15T10:02:42.9081379Z             {
2026-06-15T10:02:42.9081498Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.9081599Z               "line": 599
2026-06-15T10:02:42.9081689Z             },
2026-06-15T10:02:42.9081765Z             {
2026-06-15T10:02:42.9081880Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9081971Z               "line": 2959
2026-06-15T10:02:42.9082047Z             },
2026-06-15T10:02:42.9082128Z             {
2026-06-15T10:02:42.9082238Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9082333Z               "line": 3269
2026-06-15T10:02:42.9082423Z             },
2026-06-15T10:02:42.9082520Z             {
2026-06-15T10:02:42.9082614Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9082710Z               "line": 3288
2026-06-15T10:02:42.9082792Z             },
2026-06-15T10:02:42.9082877Z             {
2026-06-15T10:02:42.9082996Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9083116Z               "line": 3352
2026-06-15T10:02:42.9083206Z             },
2026-06-15T10:02:42.9083286Z             {
2026-06-15T10:02:42.9083400Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9083481Z               "line": 3394
2026-06-15T10:02:42.9083570Z             },
2026-06-15T10:02:42.9083655Z             {
2026-06-15T10:02:42.9083760Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9083861Z               "line": 3583
2026-06-15T10:02:42.9083942Z             },
2026-06-15T10:02:42.9084027Z             {
2026-06-15T10:02:42.9084128Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9084213Z               "line": 3653
2026-06-15T10:02:42.9084312Z             },
2026-06-15T10:02:42.9084390Z             {
2026-06-15T10:02:42.9084509Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9084594Z               "line": 3877
2026-06-15T10:02:42.9084676Z             },
2026-06-15T10:02:42.9084772Z             {
2026-06-15T10:02:42.9084876Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9084971Z               "line": 4514
2026-06-15T10:02:42.9085053Z             },
2026-06-15T10:02:42.9085143Z             {
2026-06-15T10:02:42.9085243Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T10:02:42.9085339Z               "line": 418
2026-06-15T10:02:42.9085434Z             }
2026-06-15T10:02:42.9085514Z           ]
2026-06-15T10:02:42.9085600Z         },
2026-06-15T10:02:42.9085688Z         "int": {
2026-06-15T10:02:42.9085791Z           "complete": false,
2026-06-15T10:02:42.9085882Z           "evidence": []
2026-06-15T10:02:42.9085973Z         },
2026-06-15T10:02:42.9086172Z         "unit": {
2026-06-15T10:02:42.9086267Z           "complete": true,
2026-06-15T10:02:42.9086367Z           "evidence": [
2026-06-15T10:02:42.9086451Z             {
2026-06-15T10:02:42.9086670Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.9086757Z               "line": 1477
2026-06-15T10:02:42.9086855Z             },
2026-06-15T10:02:42.9086937Z             {
2026-06-15T10:02:42.9087042Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9087142Z               "line": 8224
2026-06-15T10:02:42.9087218Z             },
2026-06-15T10:02:42.9087300Z             {
2026-06-15T10:02:42.9087400Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9087499Z               "line": 8394
2026-06-15T10:02:42.9087586Z             },
2026-06-15T10:02:42.9087672Z             {
2026-06-15T10:02:42.9087777Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9087867Z               "line": 8401
2026-06-15T10:02:42.9087954Z             },
2026-06-15T10:02:42.9088038Z             {
2026-06-15T10:02:42.9088143Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9088244Z               "line": 8454
2026-06-15T10:02:42.9088330Z             },
2026-06-15T10:02:42.9088425Z             {
2026-06-15T10:02:42.9088526Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9088621Z               "line": 8471
2026-06-15T10:02:42.9088705Z             },
2026-06-15T10:02:42.9088782Z             {
2026-06-15T10:02:42.9088881Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9089055Z               "line": 8501
2026-06-15T10:02:42.9089145Z             },
2026-06-15T10:02:42.9089227Z             {
2026-06-15T10:02:42.9089328Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9089418Z               "line": 8600
2026-06-15T10:02:42.9089504Z             },
2026-06-15T10:02:42.9089590Z             {
2026-06-15T10:02:42.9089694Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9089789Z               "line": 8751
2026-06-15T10:02:42.9089882Z             }
2026-06-15T10:02:42.9089962Z           ]
2026-06-15T10:02:42.9090047Z         }
2026-06-15T10:02:42.9090143Z       }
2026-06-15T10:02:42.9090238Z     },
2026-06-15T10:02:42.9090319Z     {
2026-06-15T10:02:42.9093451Z       "id": "REQ-SUBNET-2",
2026-06-15T10:02:42.9093705Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-15T10:02:42.9093808Z       "requiredStages": [
2026-06-15T10:02:42.9093898Z         "impl",
2026-06-15T10:02:42.9093993Z         "unit",
2026-06-15T10:02:42.9094069Z         "int"
2026-06-15T10:02:42.9094153Z       ],
2026-06-15T10:02:42.9094243Z       "stages": {
2026-06-15T10:02:42.9094325Z         "doc": {
2026-06-15T10:02:42.9094436Z           "complete": true,
2026-06-15T10:02:42.9094516Z           "evidence": [
2026-06-15T10:02:42.9094601Z             {
2026-06-15T10:02:42.9094769Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-15T10:02:42.9094868Z               "line": 60
2026-06-15T10:02:42.9094960Z             }
2026-06-15T10:02:42.9095041Z           ]
2026-06-15T10:02:42.9095135Z         },
2026-06-15T10:02:42.9095236Z         "impl": {
2026-06-15T10:02:42.9095336Z           "complete": true,
2026-06-15T10:02:42.9095427Z           "evidence": [
2026-06-15T10:02:42.9095516Z             {
2026-06-15T10:02:42.9095641Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.9095731Z               "line": 837
2026-06-15T10:02:42.9095808Z             },
2026-06-15T10:02:42.9095889Z             {
2026-06-15T10:02:42.9096018Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.9096109Z               "line": 1190
2026-06-15T10:02:42.9096195Z             },
2026-06-15T10:02:42.9096285Z             {
2026-06-15T10:02:42.9096403Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.9096500Z               "line": 538
2026-06-15T10:02:42.9096586Z             },
2026-06-15T10:02:42.9096817Z             {
2026-06-15T10:02:42.9096932Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-15T10:02:42.9097025Z               "line": 669
2026-06-15T10:02:42.9097230Z             },
2026-06-15T10:02:42.9097302Z             {
2026-06-15T10:02:42.9097430Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.9097517Z               "line": 26
2026-06-15T10:02:42.9097603Z             },
2026-06-15T10:02:42.9097688Z             {
2026-06-15T10:02:42.9097812Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.9097908Z               "line": 60
2026-06-15T10:02:42.9097984Z             },
2026-06-15T10:02:42.9098078Z             {
2026-06-15T10:02:42.9098184Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.9098274Z               "line": 168
2026-06-15T10:02:42.9098360Z             },
2026-06-15T10:02:42.9098441Z             {
2026-06-15T10:02:42.9098566Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.9098651Z               "line": 295
2026-06-15T10:02:42.9098742Z             },
2026-06-15T10:02:42.9098833Z             {
2026-06-15T10:02:42.9099032Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.9099129Z               "line": 417
2026-06-15T10:02:42.9099214Z             },
2026-06-15T10:02:42.9099303Z             {
2026-06-15T10:02:42.9099427Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-15T10:02:42.9099513Z               "line": 252
2026-06-15T10:02:42.9099596Z             },
2026-06-15T10:02:42.9099682Z             {
2026-06-15T10:02:42.9099792Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9099884Z               "line": 3315
2026-06-15T10:02:42.9099963Z             },
2026-06-15T10:02:42.9100049Z             {
2026-06-15T10:02:42.9100155Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9100250Z               "line": 3816
2026-06-15T10:02:42.9100331Z             },
2026-06-15T10:02:42.9100427Z             {
2026-06-15T10:02:42.9100527Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9100616Z               "line": 4445
2026-06-15T10:02:42.9100703Z             }
2026-06-15T10:02:42.9100798Z           ]
2026-06-15T10:02:42.9100884Z         },
2026-06-15T10:02:42.9100965Z         "int": {
2026-06-15T10:02:42.9101062Z           "complete": true,
2026-06-15T10:02:42.9101146Z           "evidence": [
2026-06-15T10:02:42.9101251Z             {
2026-06-15T10:02:42.9101381Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-15T10:02:42.9101480Z               "line": 22
2026-06-15T10:02:42.9101565Z             },
2026-06-15T10:02:42.9101643Z             {
2026-06-15T10:02:42.9101776Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.9101871Z               "line": 576
2026-06-15T10:02:42.9101948Z             },
2026-06-15T10:02:42.9102030Z             {
2026-06-15T10:02:42.9102161Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.9102251Z               "line": 793
2026-06-15T10:02:42.9102338Z             }
2026-06-15T10:02:42.9102429Z           ]
2026-06-15T10:02:42.9102513Z         },
2026-06-15T10:02:42.9102599Z         "unit": {
2026-06-15T10:02:42.9102695Z           "complete": true,
2026-06-15T10:02:42.9102790Z           "evidence": [
2026-06-15T10:02:42.9102871Z             {
2026-06-15T10:02:42.9102996Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.9103091Z               "line": 586
2026-06-15T10:02:42.9103176Z             },
2026-06-15T10:02:42.9103267Z             {
2026-06-15T10:02:42.9103367Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9103462Z               "line": 8264
2026-06-15T10:02:42.9103553Z             },
2026-06-15T10:02:42.9103631Z             {
2026-06-15T10:02:42.9103734Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9103825Z               "line": 8955
2026-06-15T10:02:42.9103907Z             }
2026-06-15T10:02:42.9104106Z           ]
2026-06-15T10:02:42.9104192Z         }
2026-06-15T10:02:42.9104279Z       }
2026-06-15T10:02:42.9104368Z     },
2026-06-15T10:02:42.9104525Z     {
2026-06-15T10:02:42.9104629Z       "id": "REQ-SUBNET-3",
2026-06-15T10:02:42.9104909Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-15T10:02:42.9105010Z       "requiredStages": [
2026-06-15T10:02:42.9105104Z         "impl",
2026-06-15T10:02:42.9105195Z         "unit"
2026-06-15T10:02:42.9105277Z       ],
2026-06-15T10:02:42.9105371Z       "stages": {
2026-06-15T10:02:42.9105447Z         "doc": {
2026-06-15T10:02:42.9105553Z           "complete": false,
2026-06-15T10:02:42.9105638Z           "evidence": []
2026-06-15T10:02:42.9105719Z         },
2026-06-15T10:02:42.9105805Z         "impl": {
2026-06-15T10:02:42.9105887Z           "complete": true,
2026-06-15T10:02:42.9105982Z           "evidence": [
2026-06-15T10:02:42.9106072Z             {
2026-06-15T10:02:42.9106221Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.9106306Z               "line": 152
2026-06-15T10:02:42.9106401Z             },
2026-06-15T10:02:42.9106493Z             {
2026-06-15T10:02:42.9106620Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.9106715Z               "line": 299
2026-06-15T10:02:42.9106803Z             },
2026-06-15T10:02:42.9106897Z             {
2026-06-15T10:02:42.9107021Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.9107108Z               "line": 437
2026-06-15T10:02:42.9107203Z             },
2026-06-15T10:02:42.9107287Z             {
2026-06-15T10:02:42.9107416Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.9107511Z               "line": 480
2026-06-15T10:02:42.9107605Z             },
2026-06-15T10:02:42.9107694Z             {
2026-06-15T10:02:42.9107820Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.9107924Z               "line": 125
2026-06-15T10:02:42.9108004Z             },
2026-06-15T10:02:42.9108082Z             {
2026-06-15T10:02:42.9108196Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.9108295Z               "line": 253
2026-06-15T10:02:42.9108377Z             },
2026-06-15T10:02:42.9108459Z             {
2026-06-15T10:02:42.9108582Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.9108663Z               "line": 264
2026-06-15T10:02:42.9108744Z             },
2026-06-15T10:02:42.9108830Z             {
2026-06-15T10:02:42.9109026Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.9109121Z               "line": 285
2026-06-15T10:02:42.9109196Z             },
2026-06-15T10:02:42.9109278Z             {
2026-06-15T10:02:42.9109398Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.9109492Z               "line": 589
2026-06-15T10:02:42.9109573Z             },
2026-06-15T10:02:42.9109670Z             {
2026-06-15T10:02:42.9109788Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.9109868Z               "line": 648
2026-06-15T10:02:42.9109968Z             },
2026-06-15T10:02:42.9110044Z             {
2026-06-15T10:02:42.9110185Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T10:02:42.9110265Z               "line": 61
2026-06-15T10:02:42.9110347Z             },
2026-06-15T10:02:42.9110444Z             {
2026-06-15T10:02:42.9110566Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T10:02:42.9110663Z               "line": 90
2026-06-15T10:02:42.9110743Z             },
2026-06-15T10:02:42.9110824Z             {
2026-06-15T10:02:42.9110949Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T10:02:42.9111039Z               "line": 125
2026-06-15T10:02:42.9111129Z             },
2026-06-15T10:02:42.9111220Z             {
2026-06-15T10:02:42.9111354Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-15T10:02:42.9111548Z               "line": 9
2026-06-15T10:02:42.9111646Z             },
2026-06-15T10:02:42.9111720Z             {
2026-06-15T10:02:42.9111922Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9112016Z               "line": 3653
2026-06-15T10:02:42.9112093Z             },
2026-06-15T10:02:42.9112183Z             {
2026-06-15T10:02:42.9112290Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T10:02:42.9112387Z               "line": 445
2026-06-15T10:02:42.9112474Z             }
2026-06-15T10:02:42.9112556Z           ]
2026-06-15T10:02:42.9112637Z         },
2026-06-15T10:02:42.9112716Z         "int": {
2026-06-15T10:02:42.9112815Z           "complete": false,
2026-06-15T10:02:42.9112907Z           "evidence": []
2026-06-15T10:02:42.9112984Z         },
2026-06-15T10:02:42.9113064Z         "unit": {
2026-06-15T10:02:42.9113169Z           "complete": true,
2026-06-15T10:02:42.9113270Z           "evidence": [
2026-06-15T10:02:42.9113350Z             {
2026-06-15T10:02:42.9113494Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.9113575Z               "line": 1304
2026-06-15T10:02:42.9113670Z             },
2026-06-15T10:02:42.9113760Z             {
2026-06-15T10:02:42.9113880Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.9113975Z               "line": 1606
2026-06-15T10:02:42.9114056Z             },
2026-06-15T10:02:42.9114142Z             {
2026-06-15T10:02:42.9114266Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T10:02:42.9114366Z               "line": 888
2026-06-15T10:02:42.9114457Z             },
2026-06-15T10:02:42.9114538Z             {
2026-06-15T10:02:42.9114661Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.9114738Z               "line": 959
2026-06-15T10:02:42.9114835Z             },
2026-06-15T10:02:42.9114923Z             {
2026-06-15T10:02:42.9115042Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.9115142Z               "line": 1009
2026-06-15T10:02:42.9115222Z             },
2026-06-15T10:02:42.9115302Z             {
2026-06-15T10:02:42.9115426Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.9115522Z               "line": 1068
2026-06-15T10:02:42.9115602Z             },
2026-06-15T10:02:42.9115683Z             {
2026-06-15T10:02:42.9115813Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-15T10:02:42.9115893Z               "line": 234
2026-06-15T10:02:42.9115988Z             },
2026-06-15T10:02:42.9116070Z             {
2026-06-15T10:02:42.9116194Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-15T10:02:42.9116284Z               "line": 49
2026-06-15T10:02:42.9116375Z             },
2026-06-15T10:02:42.9116456Z             {
2026-06-15T10:02:42.9116561Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9116661Z               "line": 8600
2026-06-15T10:02:42.9116747Z             },
2026-06-15T10:02:42.9116842Z             {
2026-06-15T10:02:42.9116947Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9117044Z               "line": 8706
2026-06-15T10:02:42.9117128Z             },
2026-06-15T10:02:42.9117214Z             {
2026-06-15T10:02:42.9117319Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9117405Z               "line": 8921
2026-06-15T10:02:42.9117500Z             }
2026-06-15T10:02:42.9117577Z           ]
2026-06-15T10:02:42.9117658Z         }
2026-06-15T10:02:42.9117740Z       }
2026-06-15T10:02:42.9117819Z     },
2026-06-15T10:02:42.9117899Z     {
2026-06-15T10:02:42.9117995Z       "id": "REQ-SUBNET-4",
2026-06-15T10:02:42.9118293Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-15T10:02:42.9118389Z       "requiredStages": [
2026-06-15T10:02:42.9118489Z         "impl",
2026-06-15T10:02:42.9118584Z         "unit"
2026-06-15T10:02:42.9118670Z       ],
2026-06-15T10:02:42.9118841Z       "stages": {
2026-06-15T10:02:42.9118917Z         "doc": {
2026-06-15T10:02:42.9119104Z           "complete": true,
2026-06-15T10:02:42.9119189Z           "evidence": [
2026-06-15T10:02:42.9119376Z             {
2026-06-15T10:02:42.9119542Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-15T10:02:42.9119629Z               "line": 60
2026-06-15T10:02:42.9119714Z             }
2026-06-15T10:02:42.9119795Z           ]
2026-06-15T10:02:42.9119886Z         },
2026-06-15T10:02:42.9119972Z         "impl": {
2026-06-15T10:02:42.9120057Z           "complete": true,
2026-06-15T10:02:42.9120138Z           "evidence": [
2026-06-15T10:02:42.9120221Z             {
2026-06-15T10:02:42.9120325Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9120409Z               "line": 2959
2026-06-15T10:02:42.9120504Z             },
2026-06-15T10:02:42.9120580Z             {
2026-06-15T10:02:42.9120689Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9120788Z               "line": 4412
2026-06-15T10:02:42.9120870Z             },
2026-06-15T10:02:42.9120951Z             {
2026-06-15T10:02:42.9121055Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9121155Z               "line": 4445
2026-06-15T10:02:42.9121242Z             }
2026-06-15T10:02:42.9121318Z           ]
2026-06-15T10:02:42.9121403Z         },
2026-06-15T10:02:42.9121479Z         "int": {
2026-06-15T10:02:42.9121585Z           "complete": false,
2026-06-15T10:02:42.9121661Z           "evidence": []
2026-06-15T10:02:42.9121751Z         },
2026-06-15T10:02:42.9121828Z         "unit": {
2026-06-15T10:02:42.9121928Z           "complete": true,
2026-06-15T10:02:42.9122023Z           "evidence": [
2026-06-15T10:02:42.9122104Z             {
2026-06-15T10:02:42.9122210Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9122295Z               "line": 8380
2026-06-15T10:02:42.9122376Z             },
2026-06-15T10:02:42.9122453Z             {
2026-06-15T10:02:42.9122567Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9122662Z               "line": 8454
2026-06-15T10:02:42.9122748Z             }
2026-06-15T10:02:42.9122835Z           ]
2026-06-15T10:02:42.9122915Z         }
2026-06-15T10:02:42.9122996Z       }
2026-06-15T10:02:42.9123078Z     },
2026-06-15T10:02:42.9123159Z     {
2026-06-15T10:02:42.9123262Z       "id": "REQ-SUBNET-5",
2026-06-15T10:02:42.9124549Z       "title": "Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)",
2026-06-15T10:02:42.9124663Z       "requiredStages": [
2026-06-15T10:02:42.9124746Z         "impl",
2026-06-15T10:02:42.9124830Z         "unit",
2026-06-15T10:02:42.9124921Z         "int"
2026-06-15T10:02:42.9125003Z       ],
2026-06-15T10:02:42.9125103Z       "stages": {
2026-06-15T10:02:42.9125183Z         "doc": {
2026-06-15T10:02:42.9125274Z           "complete": false,
2026-06-15T10:02:42.9125366Z           "evidence": []
2026-06-15T10:02:42.9125456Z         },
2026-06-15T10:02:42.9125540Z         "impl": {
2026-06-15T10:02:42.9125630Z           "complete": true,
2026-06-15T10:02:42.9125726Z           "evidence": [
2026-06-15T10:02:42.9125805Z             {
2026-06-15T10:02:42.9125938Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-15T10:02:42.9126020Z               "line": 126
2026-06-15T10:02:42.9126111Z             },
2026-06-15T10:02:42.9126196Z             {
2026-06-15T10:02:42.9126320Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-15T10:02:42.9126420Z               "line": 413
2026-06-15T10:02:42.9126501Z             },
2026-06-15T10:02:42.9126586Z             {
2026-06-15T10:02:42.9126711Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.9126960Z               "line": 74
2026-06-15T10:02:42.9127054Z             },
2026-06-15T10:02:42.9127140Z             {
2026-06-15T10:02:42.9127259Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.9127412Z               "line": 332
2026-06-15T10:02:42.9127502Z             },
2026-06-15T10:02:42.9127589Z             {
2026-06-15T10:02:42.9127707Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.9127807Z               "line": 621
2026-06-15T10:02:42.9127894Z             },
2026-06-15T10:02:42.9127989Z             {
2026-06-15T10:02:42.9128118Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T10:02:42.9128213Z               "line": 31
2026-06-15T10:02:42.9128304Z             },
2026-06-15T10:02:42.9128389Z             {
2026-06-15T10:02:42.9128516Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T10:02:42.9128598Z               "line": 50
2026-06-15T10:02:42.9128691Z             },
2026-06-15T10:02:42.9128776Z             {
2026-06-15T10:02:42.9128896Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T10:02:42.9129063Z               "line": 69
2026-06-15T10:02:42.9129149Z             },
2026-06-15T10:02:42.9129240Z             {
2026-06-15T10:02:42.9129363Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T10:02:42.9129453Z               "line": 113
2026-06-15T10:02:42.9129540Z             },
2026-06-15T10:02:42.9129621Z             {
2026-06-15T10:02:42.9129749Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T10:02:42.9129846Z               "line": 25
2026-06-15T10:02:42.9129940Z             },
2026-06-15T10:02:42.9130021Z             {
2026-06-15T10:02:42.9130141Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T10:02:42.9130227Z               "line": 34
2026-06-15T10:02:42.9130316Z             },
2026-06-15T10:02:42.9130407Z             {
2026-06-15T10:02:42.9130523Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T10:02:42.9130622Z               "line": 17
2026-06-15T10:02:42.9130703Z             },
2026-06-15T10:02:42.9130790Z             {
2026-06-15T10:02:42.9130890Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9130978Z               "line": 4370
2026-06-15T10:02:42.9131059Z             },
2026-06-15T10:02:42.9131145Z             {
2026-06-15T10:02:42.9131258Z               "path": "crates/spt/src/wansend.rs",
2026-06-15T10:02:42.9131343Z               "line": 419
2026-06-15T10:02:42.9131463Z             }
2026-06-15T10:02:42.9131550Z           ]
2026-06-15T10:02:42.9131643Z         },
2026-06-15T10:02:42.9131720Z         "int": {
2026-06-15T10:02:42.9131817Z           "complete": true,
2026-06-15T10:02:42.9131907Z           "evidence": [
2026-06-15T10:02:42.9131987Z             {
2026-06-15T10:02:42.9132107Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T10:02:42.9132192Z               "line": 817
2026-06-15T10:02:42.9132277Z             }
2026-06-15T10:02:42.9132374Z           ]
2026-06-15T10:02:42.9132455Z         },
2026-06-15T10:02:42.9132550Z         "unit": {
2026-06-15T10:02:42.9132640Z           "complete": true,
2026-06-15T10:02:42.9132732Z           "evidence": [
2026-06-15T10:02:42.9132812Z             {
2026-06-15T10:02:42.9132921Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T10:02:42.9133023Z               "line": 341
2026-06-15T10:02:42.9133099Z             },
2026-06-15T10:02:42.9133193Z             {
2026-06-15T10:02:42.9133308Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-15T10:02:42.9133405Z               "line": 1115
2026-06-15T10:02:42.9133493Z             },
2026-06-15T10:02:42.9133575Z             {
2026-06-15T10:02:42.9133700Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-15T10:02:42.9133780Z               "line": 151
2026-06-15T10:02:42.9133870Z             },
2026-06-15T10:02:42.9133945Z             {
2026-06-15T10:02:42.9134075Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-15T10:02:42.9134279Z               "line": 61
2026-06-15T10:02:42.9134371Z             },
2026-06-15T10:02:42.9134447Z             {
2026-06-15T10:02:42.9134657Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T10:02:42.9134762Z               "line": 111
2026-06-15T10:02:42.9134842Z             },
2026-06-15T10:02:42.9134933Z             {
2026-06-15T10:02:42.9135052Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T10:02:42.9135147Z               "line": 138
2026-06-15T10:02:42.9135238Z             },
2026-06-15T10:02:42.9135316Z             {
2026-06-15T10:02:42.9135438Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-15T10:02:42.9135519Z               "line": 148
2026-06-15T10:02:42.9135602Z             },
2026-06-15T10:02:42.9135682Z             {
2026-06-15T10:02:42.9135786Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9135892Z               "line": 8281
2026-06-15T10:02:42.9135973Z             }
2026-06-15T10:02:42.9136062Z           ]
2026-06-15T10:02:42.9136138Z         }
2026-06-15T10:02:42.9136233Z       }
2026-06-15T10:02:42.9136319Z     },
2026-06-15T10:02:42.9136413Z     {
2026-06-15T10:02:42.9136512Z       "id": "REQ-SUBNET-6",
2026-06-15T10:02:42.9137195Z       "title": "Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)",
2026-06-15T10:02:42.9137295Z       "requiredStages": [
2026-06-15T10:02:42.9137390Z         "impl",
2026-06-15T10:02:42.9137476Z         "unit"
2026-06-15T10:02:42.9137567Z       ],
2026-06-15T10:02:42.9137662Z       "stages": {
2026-06-15T10:02:42.9137747Z         "doc": {
2026-06-15T10:02:42.9137844Z           "complete": false,
2026-06-15T10:02:42.9137943Z           "evidence": []
2026-06-15T10:02:42.9138034Z         },
2026-06-15T10:02:42.9138129Z         "impl": {
2026-06-15T10:02:42.9138216Z           "complete": true,
2026-06-15T10:02:42.9138305Z           "evidence": [
2026-06-15T10:02:42.9138382Z             {
2026-06-15T10:02:42.9138507Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.9138591Z               "line": 254
2026-06-15T10:02:42.9138682Z             },
2026-06-15T10:02:42.9138759Z             {
2026-06-15T10:02:42.9138860Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9139005Z               "line": 4028
2026-06-15T10:02:42.9139100Z             },
2026-06-15T10:02:42.9139172Z             {
2026-06-15T10:02:42.9139275Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9139374Z               "line": 4045
2026-06-15T10:02:42.9139466Z             },
2026-06-15T10:02:42.9139557Z             {
2026-06-15T10:02:42.9139660Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9139752Z               "line": 4098
2026-06-15T10:02:42.9139838Z             },
2026-06-15T10:02:42.9139923Z             {
2026-06-15T10:02:42.9140033Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9140119Z               "line": 4121
2026-06-15T10:02:42.9140210Z             }
2026-06-15T10:02:42.9140290Z           ]
2026-06-15T10:02:42.9140371Z         },
2026-06-15T10:02:42.9140453Z         "int": {
2026-06-15T10:02:42.9140553Z           "complete": false,
2026-06-15T10:02:42.9140648Z           "evidence": []
2026-06-15T10:02:42.9140730Z         },
2026-06-15T10:02:42.9140820Z         "unit": {
2026-06-15T10:02:42.9140915Z           "complete": true,
2026-06-15T10:02:42.9140996Z           "evidence": [
2026-06-15T10:02:42.9141068Z             {
2026-06-15T10:02:42.9141182Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9141272Z               "line": 8295
2026-06-15T10:02:42.9141369Z             },
2026-06-15T10:02:42.9141464Z             {
2026-06-15T10:02:42.9141562Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9141663Z               "line": 8328
2026-06-15T10:02:42.9141842Z             },
2026-06-15T10:02:42.9141937Z             {
2026-06-15T10:02:42.9142032Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9142218Z               "line": 8337
2026-06-15T10:02:42.9142309Z             }
2026-06-15T10:02:42.9142386Z           ]
2026-06-15T10:02:42.9142472Z         }
2026-06-15T10:02:42.9142547Z       }
2026-06-15T10:02:42.9142629Z     },
2026-06-15T10:02:42.9142724Z     {
2026-06-15T10:02:42.9142819Z       "id": "REQ-SUBNET-7",
2026-06-15T10:02:42.9144482Z       "title": "Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)",
2026-06-15T10:02:42.9144587Z       "requiredStages": [
2026-06-15T10:02:42.9144679Z         "impl",
2026-06-15T10:02:42.9144773Z         "unit"
2026-06-15T10:02:42.9144849Z       ],
2026-06-15T10:02:42.9144955Z       "stages": {
2026-06-15T10:02:42.9145035Z         "doc": {
2026-06-15T10:02:42.9145130Z           "complete": false,
2026-06-15T10:02:42.9145222Z           "evidence": []
2026-06-15T10:02:42.9145312Z         },
2026-06-15T10:02:42.9145402Z         "impl": {
2026-06-15T10:02:42.9145493Z           "complete": true,
2026-06-15T10:02:42.9145589Z           "evidence": [
2026-06-15T10:02:42.9145670Z             {
2026-06-15T10:02:42.9145803Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T10:02:42.9145890Z               "line": 17
2026-06-15T10:02:42.9145984Z             },
2026-06-15T10:02:42.9146075Z             {
2026-06-15T10:02:42.9146195Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.9146293Z               "line": 103
2026-06-15T10:02:42.9146384Z             },
2026-06-15T10:02:42.9146471Z             {
2026-06-15T10:02:42.9146594Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-15T10:02:42.9146689Z               "line": 312
2026-06-15T10:02:42.9146779Z             },
2026-06-15T10:02:42.9146860Z             {
2026-06-15T10:02:42.9146997Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-15T10:02:42.9147087Z               "line": 131
2026-06-15T10:02:42.9147178Z             },
2026-06-15T10:02:42.9147263Z             {
2026-06-15T10:02:42.9147397Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.9147493Z               "line": 160
2026-06-15T10:02:42.9147569Z             },
2026-06-15T10:02:42.9147659Z             {
2026-06-15T10:02:42.9147779Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.9147879Z               "line": 441
2026-06-15T10:02:42.9147969Z             },
2026-06-15T10:02:42.9148046Z             {
2026-06-15T10:02:42.9148165Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.9148265Z               "line": 618
2026-06-15T10:02:42.9148355Z             },
2026-06-15T10:02:42.9148433Z             {
2026-06-15T10:02:42.9148556Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.9148650Z               "line": 658
2026-06-15T10:02:42.9148733Z             },
2026-06-15T10:02:42.9148827Z             {
2026-06-15T10:02:42.9149019Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.9149109Z               "line": 714
2026-06-15T10:02:42.9149199Z             },
2026-06-15T10:02:42.9149280Z             {
2026-06-15T10:02:42.9149405Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T10:02:42.9149490Z               "line": 136
2026-06-15T10:02:42.9149575Z             },
2026-06-15T10:02:42.9149651Z             {
2026-06-15T10:02:42.9149779Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.9149968Z               "line": 139
2026-06-15T10:02:42.9150055Z             }
2026-06-15T10:02:42.9150230Z           ]
2026-06-15T10:02:42.9150312Z         },
2026-06-15T10:02:42.9150398Z         "int": {
2026-06-15T10:02:42.9150493Z           "complete": false,
2026-06-15T10:02:42.9150583Z           "evidence": []
2026-06-15T10:02:42.9150660Z         },
2026-06-15T10:02:42.9150755Z         "unit": {
2026-06-15T10:02:42.9150855Z           "complete": true,
2026-06-15T10:02:42.9150936Z           "evidence": [
2026-06-15T10:02:42.9151028Z             {
2026-06-15T10:02:42.9151151Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T10:02:42.9151242Z               "line": 136
2026-06-15T10:02:42.9151347Z             },
2026-06-15T10:02:42.9151432Z             {
2026-06-15T10:02:42.9151557Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-15T10:02:42.9151652Z               "line": 156
2026-06-15T10:02:42.9151751Z             },
2026-06-15T10:02:42.9151832Z             {
2026-06-15T10:02:42.9151958Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.9152061Z               "line": 935
2026-06-15T10:02:42.9152142Z             },
2026-06-15T10:02:42.9152223Z             {
2026-06-15T10:02:42.9152350Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-15T10:02:42.9152444Z               "line": 957
2026-06-15T10:02:42.9152525Z             },
2026-06-15T10:02:42.9152612Z             {
2026-06-15T10:02:42.9152740Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-15T10:02:42.9152835Z               "line": 1419
2026-06-15T10:02:42.9152917Z             },
2026-06-15T10:02:42.9152993Z             {
2026-06-15T10:02:42.9153116Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-15T10:02:42.9153199Z               "line": 1004
2026-06-15T10:02:42.9153293Z             }
2026-06-15T10:02:42.9153384Z           ]
2026-06-15T10:02:42.9153474Z         }
2026-06-15T10:02:42.9153561Z       }
2026-06-15T10:02:42.9153636Z     },
2026-06-15T10:02:42.9153727Z     {
2026-06-15T10:02:42.9153818Z       "id": "REQ-SUBNET-8",
2026-06-15T10:02:42.9154952Z       "title": "Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)",
2026-06-15T10:02:42.9155056Z       "requiredStages": [
2026-06-15T10:02:42.9155138Z         "impl",
2026-06-15T10:02:42.9155229Z         "unit"
2026-06-15T10:02:42.9155309Z       ],
2026-06-15T10:02:42.9155399Z       "stages": {
2026-06-15T10:02:42.9155500Z         "doc": {
2026-06-15T10:02:42.9155595Z           "complete": false,
2026-06-15T10:02:42.9155700Z           "evidence": []
2026-06-15T10:02:42.9155782Z         },
2026-06-15T10:02:42.9155882Z         "impl": {
2026-06-15T10:02:42.9155976Z           "complete": true,
2026-06-15T10:02:42.9156072Z           "evidence": [
2026-06-15T10:02:42.9156163Z             {
2026-06-15T10:02:42.9156267Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9156363Z               "line": 3395
2026-06-15T10:02:42.9156455Z             },
2026-06-15T10:02:42.9156544Z             {
2026-06-15T10:02:42.9156654Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9156750Z               "line": 3424
2026-06-15T10:02:42.9156844Z             },
2026-06-15T10:02:42.9156925Z             {
2026-06-15T10:02:42.9157036Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9157126Z               "line": 3441
2026-06-15T10:02:42.9157216Z             },
2026-06-15T10:02:42.9157301Z             {
2026-06-15T10:02:42.9157411Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9157504Z               "line": 3464
2026-06-15T10:02:42.9157589Z             },
2026-06-15T10:02:42.9157791Z             {
2026-06-15T10:02:42.9157895Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9157990Z               "line": 3878
2026-06-15T10:02:42.9158152Z             }
2026-06-15T10:02:42.9158242Z           ]
2026-06-15T10:02:42.9158335Z         },
2026-06-15T10:02:42.9158420Z         "int": {
2026-06-15T10:02:42.9158524Z           "complete": false,
2026-06-15T10:02:42.9158615Z           "evidence": []
2026-06-15T10:02:42.9158706Z         },
2026-06-15T10:02:42.9158791Z         "unit": {
2026-06-15T10:02:42.9158891Z           "complete": true,
2026-06-15T10:02:42.9159044Z           "evidence": [
2026-06-15T10:02:42.9159130Z             {
2026-06-15T10:02:42.9159240Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9159331Z               "line": 8485
2026-06-15T10:02:42.9159425Z             },
2026-06-15T10:02:42.9159507Z             {
2026-06-15T10:02:42.9159608Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9159697Z               "line": 8501
2026-06-15T10:02:42.9159783Z             }
2026-06-15T10:02:42.9159865Z           ]
2026-06-15T10:02:42.9159942Z         }
2026-06-15T10:02:42.9160036Z       }
2026-06-15T10:02:42.9160121Z     },
2026-06-15T10:02:42.9160211Z     {
2026-06-15T10:02:42.9160311Z       "id": "REQ-TERM-1",
2026-06-15T10:02:42.9160485Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-15T10:02:42.9160591Z       "requiredStages": [
2026-06-15T10:02:42.9160667Z         "impl",
2026-06-15T10:02:42.9160752Z         "unit"
2026-06-15T10:02:42.9160829Z       ],
2026-06-15T10:02:42.9160920Z       "stages": {
2026-06-15T10:02:42.9161011Z         "doc": {
2026-06-15T10:02:42.9161109Z           "complete": false,
2026-06-15T10:02:42.9161202Z           "evidence": []
2026-06-15T10:02:42.9161287Z         },
2026-06-15T10:02:42.9161372Z         "impl": {
2026-06-15T10:02:42.9161468Z           "complete": true,
2026-06-15T10:02:42.9161559Z           "evidence": [
2026-06-15T10:02:42.9164849Z             {
2026-06-15T10:02:42.9165008Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T10:02:42.9165113Z               "line": 59
2026-06-15T10:02:42.9165212Z             },
2026-06-15T10:02:42.9165299Z             {
2026-06-15T10:02:42.9165409Z               "path": "crates/spt-term/src/pty.rs",
2026-06-15T10:02:42.9165512Z               "line": 195
2026-06-15T10:02:42.9165602Z             },
2026-06-15T10:02:42.9165688Z             {
2026-06-15T10:02:42.9165813Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T10:02:42.9165902Z               "line": 100
2026-06-15T10:02:42.9165979Z             }
2026-06-15T10:02:42.9166065Z           ]
2026-06-15T10:02:42.9166146Z         },
2026-06-15T10:02:42.9166236Z         "int": {
2026-06-15T10:02:42.9166333Z           "complete": false,
2026-06-15T10:02:42.9166427Z           "evidence": []
2026-06-15T10:02:42.9166512Z         },
2026-06-15T10:02:42.9166604Z         "unit": {
2026-06-15T10:02:42.9166695Z           "complete": true,
2026-06-15T10:02:42.9166780Z           "evidence": [
2026-06-15T10:02:42.9166860Z             {
2026-06-15T10:02:42.9166991Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T10:02:42.9167085Z               "line": 24
2026-06-15T10:02:42.9167166Z             },
2026-06-15T10:02:42.9167248Z             {
2026-06-15T10:02:42.9167371Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-15T10:02:42.9167466Z               "line": 56
2026-06-15T10:02:42.9167547Z             }
2026-06-15T10:02:42.9167630Z           ]
2026-06-15T10:02:42.9167709Z         }
2026-06-15T10:02:42.9167795Z       }
2026-06-15T10:02:42.9167880Z     },
2026-06-15T10:02:42.9167962Z     {
2026-06-15T10:02:42.9168055Z       "id": "REQ-TERM-2",
2026-06-15T10:02:42.9168240Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-15T10:02:42.9168342Z       "requiredStages": [
2026-06-15T10:02:42.9168440Z         "impl",
2026-06-15T10:02:42.9168522Z         "unit"
2026-06-15T10:02:42.9168750Z       ],
2026-06-15T10:02:42.9168831Z       "stages": {
2026-06-15T10:02:42.9168914Z         "doc": {
2026-06-15T10:02:42.9169113Z           "complete": false,
2026-06-15T10:02:42.9169304Z           "evidence": []
2026-06-15T10:02:42.9169413Z         },
2026-06-15T10:02:42.9169514Z         "impl": {
2026-06-15T10:02:42.9169628Z           "complete": true,
2026-06-15T10:02:42.9169718Z           "evidence": [
2026-06-15T10:02:42.9169810Z             {
2026-06-15T10:02:42.9169928Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T10:02:42.9170024Z               "line": 117
2026-06-15T10:02:42.9170105Z             },
2026-06-15T10:02:42.9170183Z             {
2026-06-15T10:02:42.9170309Z               "path": "crates/spt-term/src/surface.rs",
2026-06-15T10:02:42.9170391Z               "line": 127
2026-06-15T10:02:42.9170483Z             }
2026-06-15T10:02:42.9170577Z           ]
2026-06-15T10:02:42.9170662Z         },
2026-06-15T10:02:42.9170747Z         "int": {
2026-06-15T10:02:42.9170838Z           "complete": false,
2026-06-15T10:02:42.9170936Z           "evidence": []
2026-06-15T10:02:42.9171021Z         },
2026-06-15T10:02:42.9171117Z         "unit": {
2026-06-15T10:02:42.9171218Z           "complete": true,
2026-06-15T10:02:42.9171308Z           "evidence": [
2026-06-15T10:02:42.9171398Z             {
2026-06-15T10:02:42.9171523Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-15T10:02:42.9171617Z               "line": 46
2026-06-15T10:02:42.9171698Z             },
2026-06-15T10:02:42.9171785Z             {
2026-06-15T10:02:42.9171909Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-15T10:02:42.9172003Z               "line": 77
2026-06-15T10:02:42.9172081Z             }
2026-06-15T10:02:42.9172171Z           ]
2026-06-15T10:02:42.9172252Z         }
2026-06-15T10:02:42.9172333Z       }
2026-06-15T10:02:42.9172429Z     },
2026-06-15T10:02:42.9172514Z     {
2026-06-15T10:02:42.9172610Z       "id": "REQ-TERM-3",
2026-06-15T10:02:42.9172753Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-15T10:02:42.9172857Z       "requiredStages": [
2026-06-15T10:02:42.9172952Z         "impl",
2026-06-15T10:02:42.9173035Z         "unit"
2026-06-15T10:02:42.9173130Z       ],
2026-06-15T10:02:42.9173219Z       "stages": {
2026-06-15T10:02:42.9173295Z         "doc": {
2026-06-15T10:02:42.9173400Z           "complete": false,
2026-06-15T10:02:42.9173484Z           "evidence": []
2026-06-15T10:02:42.9173573Z         },
2026-06-15T10:02:42.9173660Z         "impl": {
2026-06-15T10:02:42.9173770Z           "complete": true,
2026-06-15T10:02:42.9173893Z           "evidence": [
2026-06-15T10:02:42.9173999Z             {
2026-06-15T10:02:42.9174128Z               "path": "crates/spt-term/src/stream.rs",
2026-06-15T10:02:42.9174208Z               "line": 71
2026-06-15T10:02:42.9174289Z             }
2026-06-15T10:02:42.9174376Z           ]
2026-06-15T10:02:42.9174461Z         },
2026-06-15T10:02:42.9174551Z         "int": {
2026-06-15T10:02:42.9174643Z           "complete": false,
2026-06-15T10:02:42.9174738Z           "evidence": []
2026-06-15T10:02:42.9174814Z         },
2026-06-15T10:02:42.9174900Z         "unit": {
2026-06-15T10:02:42.9174986Z           "complete": true,
2026-06-15T10:02:42.9175081Z           "evidence": [
2026-06-15T10:02:42.9175171Z             {
2026-06-15T10:02:42.9175291Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-15T10:02:42.9175396Z               "line": 37
2026-06-15T10:02:42.9175472Z             },
2026-06-15T10:02:42.9175558Z             {
2026-06-15T10:02:42.9175668Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-15T10:02:42.9175767Z               "line": 67
2026-06-15T10:02:42.9175849Z             }
2026-06-15T10:02:42.9175935Z           ]
2026-06-15T10:02:42.9176025Z         }
2026-06-15T10:02:42.9176114Z       }
2026-06-15T10:02:42.9176200Z     },
2026-06-15T10:02:42.9176287Z     {
2026-06-15T10:02:42.9176382Z       "id": "REQ-TERM-4",
2026-06-15T10:02:42.9176854Z       "title": "Live activity buffer (session digest): projection of normalized session logs, snapshot-pull (spt endpoint digest) + structured-delta-stream contract + api digest-entry push",
2026-06-15T10:02:42.9177125Z       "requiredStages": [
2026-06-15T10:02:42.9177222Z         "impl",
2026-06-15T10:02:42.9177297Z         "unit",
2026-06-15T10:02:42.9177387Z         "int"
2026-06-15T10:02:42.9177473Z       ],
2026-06-15T10:02:42.9177556Z       "stages": {
2026-06-15T10:02:42.9177640Z         "doc": {
2026-06-15T10:02:42.9177726Z           "complete": false,
2026-06-15T10:02:42.9177818Z           "evidence": []
2026-06-15T10:02:42.9177908Z         },
2026-06-15T10:02:42.9177997Z         "impl": {
2026-06-15T10:02:42.9178089Z           "complete": true,
2026-06-15T10:02:42.9178181Z           "evidence": [
2026-06-15T10:02:42.9178265Z             {
2026-06-15T10:02:42.9178378Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T10:02:42.9178478Z               "line": 37
2026-06-15T10:02:42.9178554Z             },
2026-06-15T10:02:42.9178643Z             {
2026-06-15T10:02:42.9178767Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T10:02:42.9178863Z               "line": 25
2026-06-15T10:02:42.9179034Z             },
2026-06-15T10:02:42.9179115Z             {
2026-06-15T10:02:42.9179254Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T10:02:42.9179344Z               "line": 114
2026-06-15T10:02:42.9179450Z             },
2026-06-15T10:02:42.9179545Z             {
2026-06-15T10:02:42.9179668Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T10:02:42.9179769Z               "line": 267
2026-06-15T10:02:42.9179850Z             },
2026-06-15T10:02:42.9179930Z             {
2026-06-15T10:02:42.9180045Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T10:02:42.9180141Z               "line": 289
2026-06-15T10:02:42.9180217Z             },
2026-06-15T10:02:42.9180312Z             {
2026-06-15T10:02:42.9180428Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T10:02:42.9180522Z               "line": 307
2026-06-15T10:02:42.9180612Z             },
2026-06-15T10:02:42.9180690Z             {
2026-06-15T10:02:42.9180817Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T10:02:42.9180908Z               "line": 33
2026-06-15T10:02:42.9180995Z             },
2026-06-15T10:02:42.9181072Z             {
2026-06-15T10:02:42.9181203Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9181288Z               "line": 52
2026-06-15T10:02:42.9181379Z             },
2026-06-15T10:02:42.9181463Z             {
2026-06-15T10:02:42.9181586Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9181667Z               "line": 180
2026-06-15T10:02:42.9181745Z             },
2026-06-15T10:02:42.9181830Z             {
2026-06-15T10:02:42.9181958Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9182040Z               "line": 190
2026-06-15T10:02:42.9182140Z             },
2026-06-15T10:02:42.9182230Z             {
2026-06-15T10:02:42.9182345Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9182450Z               "line": 250
2026-06-15T10:02:42.9182530Z             },
2026-06-15T10:02:42.9182612Z             {
2026-06-15T10:02:42.9182740Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.9182836Z               "line": 280
2026-06-15T10:02:42.9182922Z             },
2026-06-15T10:02:42.9182994Z             {
2026-06-15T10:02:42.9183126Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.9183237Z               "line": 291
2026-06-15T10:02:42.9183318Z             },
2026-06-15T10:02:42.9183403Z             {
2026-06-15T10:02:42.9183508Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9183605Z               "line": 1086
2026-06-15T10:02:42.9183685Z             }
2026-06-15T10:02:42.9183765Z           ]
2026-06-15T10:02:42.9183845Z         },
2026-06-15T10:02:42.9184044Z         "int": {
2026-06-15T10:02:42.9184133Z           "complete": true,
2026-06-15T10:02:42.9184234Z           "evidence": [
2026-06-15T10:02:42.9184416Z             {
2026-06-15T10:02:42.9184525Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-15T10:02:42.9184626Z               "line": 18
2026-06-15T10:02:42.9184707Z             }
2026-06-15T10:02:42.9184791Z           ]
2026-06-15T10:02:42.9184874Z         },
2026-06-15T10:02:42.9184969Z         "unit": {
2026-06-15T10:02:42.9185064Z           "complete": true,
2026-06-15T10:02:42.9185145Z           "evidence": [
2026-06-15T10:02:42.9185227Z             {
2026-06-15T10:02:42.9185345Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T10:02:42.9185440Z               "line": 349
2026-06-15T10:02:42.9185518Z             },
2026-06-15T10:02:42.9185603Z             {
2026-06-15T10:02:42.9185717Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T10:02:42.9185803Z               "line": 401
2026-06-15T10:02:42.9185904Z             },
2026-06-15T10:02:42.9185993Z             {
2026-06-15T10:02:42.9186104Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T10:02:42.9186190Z               "line": 411
2026-06-15T10:02:42.9186284Z             },
2026-06-15T10:02:42.9186375Z             {
2026-06-15T10:02:42.9186495Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T10:02:42.9186585Z               "line": 436
2026-06-15T10:02:42.9186665Z             },
2026-06-15T10:02:42.9186760Z             {
2026-06-15T10:02:42.9186885Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T10:02:42.9186970Z               "line": 456
2026-06-15T10:02:42.9187060Z             },
2026-06-15T10:02:42.9187142Z             {
2026-06-15T10:02:42.9187262Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T10:02:42.9187351Z               "line": 478
2026-06-15T10:02:42.9187433Z             },
2026-06-15T10:02:42.9187519Z             {
2026-06-15T10:02:42.9187642Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T10:02:42.9187743Z               "line": 491
2026-06-15T10:02:42.9187824Z             },
2026-06-15T10:02:42.9187910Z             {
2026-06-15T10:02:42.9188028Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-15T10:02:42.9188125Z               "line": 502
2026-06-15T10:02:42.9188214Z             },
2026-06-15T10:02:42.9188305Z             {
2026-06-15T10:02:42.9188426Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T10:02:42.9188515Z               "line": 108
2026-06-15T10:02:42.9188605Z             },
2026-06-15T10:02:42.9188687Z             {
2026-06-15T10:02:42.9188811Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T10:02:42.9188910Z               "line": 119
2026-06-15T10:02:42.9189067Z             },
2026-06-15T10:02:42.9189156Z             {
2026-06-15T10:02:42.9189274Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T10:02:42.9189355Z               "line": 127
2026-06-15T10:02:42.9189457Z             },
2026-06-15T10:02:42.9189584Z             {
2026-06-15T10:02:42.9189733Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9189814Z               "line": 474
2026-06-15T10:02:42.9189899Z             },
2026-06-15T10:02:42.9189976Z             {
2026-06-15T10:02:42.9190100Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9190185Z               "line": 501
2026-06-15T10:02:42.9190276Z             },
2026-06-15T10:02:42.9190358Z             {
2026-06-15T10:02:42.9190472Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9190562Z               "line": 520
2026-06-15T10:02:42.9190644Z             },
2026-06-15T10:02:42.9190733Z             {
2026-06-15T10:02:42.9190848Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9190939Z               "line": 535
2026-06-15T10:02:42.9191034Z             },
2026-06-15T10:02:42.9191110Z             {
2026-06-15T10:02:42.9191335Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9191434Z               "line": 561
2026-06-15T10:02:42.9191511Z             },
2026-06-15T10:02:42.9191711Z             {
2026-06-15T10:02:42.9191843Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9191939Z               "line": 581
2026-06-15T10:02:42.9192023Z             },
2026-06-15T10:02:42.9192123Z             {
2026-06-15T10:02:42.9192237Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9192324Z               "line": 591
2026-06-15T10:02:42.9192409Z             },
2026-06-15T10:02:42.9192489Z             {
2026-06-15T10:02:42.9192605Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9192686Z               "line": 683
2026-06-15T10:02:42.9192776Z             },
2026-06-15T10:02:42.9192862Z             {
2026-06-15T10:02:42.9192986Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.9193086Z               "line": 761
2026-06-15T10:02:42.9193167Z             },
2026-06-15T10:02:42.9193253Z             {
2026-06-15T10:02:42.9193353Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9193453Z               "line": 8052
2026-06-15T10:02:42.9193540Z             }
2026-06-15T10:02:42.9193620Z           ]
2026-06-15T10:02:42.9193706Z         }
2026-06-15T10:02:42.9193782Z       }
2026-06-15T10:02:42.9193869Z     },
2026-06-15T10:02:42.9193944Z     {
2026-06-15T10:02:42.9194040Z       "id": "REQ-TERM-5",
2026-06-15T10:02:42.9195539Z       "title": "Adapter-declared digest extractor seam: a `[digest]` manifest section declaring an imperative extractor (native harness log -> the {role,text,tool,ts} contract; defaults to the [history] source files with an own-source escape hatch), `api digest-entry` push fallback, register-time validation of the section, adapter-declared presentation defaults (window depth, arg-truncation, sprint-collapse) that any consumer may override, and a `spt adapter digest-proof` author tool plus runtime skip-diagnostics (no silent drop). Reverses M9's no-manifest-seam stance; no declarative DSL.",
2026-06-15T10:02:42.9195648Z       "requiredStages": [
2026-06-15T10:02:42.9195744Z         "doc",
2026-06-15T10:02:42.9195834Z         "impl",
2026-06-15T10:02:42.9195925Z         "unit",
2026-06-15T10:02:42.9196010Z         "int"
2026-06-15T10:02:42.9196092Z       ],
2026-06-15T10:02:42.9196182Z       "stages": {
2026-06-15T10:02:42.9196277Z         "doc": {
2026-06-15T10:02:42.9196373Z           "complete": true,
2026-06-15T10:02:42.9196455Z           "evidence": [
2026-06-15T10:02:42.9196544Z             {
2026-06-15T10:02:42.9196649Z               "path": "docs/MANIFEST.md",
2026-06-15T10:02:42.9196746Z               "line": 156
2026-06-15T10:02:42.9196835Z             }
2026-06-15T10:02:42.9196921Z           ]
2026-06-15T10:02:42.9197003Z         },
2026-06-15T10:02:42.9197084Z         "impl": {
2026-06-15T10:02:42.9197187Z           "complete": true,
2026-06-15T10:02:42.9197277Z           "evidence": [
2026-06-15T10:02:42.9197359Z             {
2026-06-15T10:02:42.9197488Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T10:02:42.9197568Z               "line": 75
2026-06-15T10:02:42.9197659Z             },
2026-06-15T10:02:42.9197741Z             {
2026-06-15T10:02:42.9197868Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T10:02:42.9197954Z               "line": 131
2026-06-15T10:02:42.9198041Z             },
2026-06-15T10:02:42.9198127Z             {
2026-06-15T10:02:42.9198240Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T10:02:42.9198332Z               "line": 22
2026-06-15T10:02:42.9198422Z             },
2026-06-15T10:02:42.9198517Z             {
2026-06-15T10:02:42.9198623Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T10:02:42.9198714Z               "line": 81
2026-06-15T10:02:42.9198799Z             },
2026-06-15T10:02:42.9198879Z             {
2026-06-15T10:02:42.9199080Z               "path": "crates/spt-term/src/digest.rs",
2026-06-15T10:02:42.9199276Z               "line": 30
2026-06-15T10:02:42.9199362Z             },
2026-06-15T10:02:42.9199536Z             {
2026-06-15T10:02:42.9199656Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9199749Z               "line": 103
2026-06-15T10:02:42.9199830Z             },
2026-06-15T10:02:42.9199911Z             {
2026-06-15T10:02:42.9200036Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9200135Z               "line": 167
2026-06-15T10:02:42.9200216Z             },
2026-06-15T10:02:42.9200302Z             {
2026-06-15T10:02:42.9200421Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9200511Z               "line": 434
2026-06-15T10:02:42.9200603Z             },
2026-06-15T10:02:42.9200679Z             {
2026-06-15T10:02:42.9200783Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9200870Z               "line": 5074
2026-06-15T10:02:42.9200951Z             },
2026-06-15T10:02:42.9201036Z             {
2026-06-15T10:02:42.9201141Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9201247Z               "line": 5108
2026-06-15T10:02:42.9201322Z             }
2026-06-15T10:02:42.9201403Z           ]
2026-06-15T10:02:42.9201495Z         },
2026-06-15T10:02:42.9201581Z         "int": {
2026-06-15T10:02:42.9201675Z           "complete": true,
2026-06-15T10:02:42.9201766Z           "evidence": [
2026-06-15T10:02:42.9201848Z             {
2026-06-15T10:02:42.9201994Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T10:02:42.9202100Z               "line": 17
2026-06-15T10:02:42.9202201Z             }
2026-06-15T10:02:42.9202285Z           ]
2026-06-15T10:02:42.9202366Z         },
2026-06-15T10:02:42.9202451Z         "unit": {
2026-06-15T10:02:42.9202551Z           "complete": true,
2026-06-15T10:02:42.9202635Z           "evidence": [
2026-06-15T10:02:42.9202720Z             {
2026-06-15T10:02:42.9202840Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T10:02:42.9202922Z               "line": 360
2026-06-15T10:02:42.9203016Z             },
2026-06-15T10:02:42.9203098Z             {
2026-06-15T10:02:42.9203222Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T10:02:42.9203307Z               "line": 153
2026-06-15T10:02:42.9203393Z             },
2026-06-15T10:02:42.9203480Z             {
2026-06-15T10:02:42.9203580Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T10:02:42.9203679Z               "line": 169
2026-06-15T10:02:42.9203761Z             },
2026-06-15T10:02:42.9203851Z             {
2026-06-15T10:02:42.9203961Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T10:02:42.9204061Z               "line": 191
2026-06-15T10:02:42.9204152Z             },
2026-06-15T10:02:42.9204227Z             {
2026-06-15T10:02:42.9204342Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T10:02:42.9204429Z               "line": 202
2026-06-15T10:02:42.9204518Z             },
2026-06-15T10:02:42.9204605Z             {
2026-06-15T10:02:42.9204720Z               "path": "crates/spt-live/src/digest.rs",
2026-06-15T10:02:42.9204824Z               "line": 213
2026-06-15T10:02:42.9204904Z             },
2026-06-15T10:02:42.9204994Z             {
2026-06-15T10:02:42.9205118Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.9205216Z               "line": 1064
2026-06-15T10:02:42.9205297Z             },
2026-06-15T10:02:42.9205374Z             {
2026-06-15T10:02:42.9205503Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.9205582Z               "line": 1107
2026-06-15T10:02:42.9205679Z             },
2026-06-15T10:02:42.9205756Z             {
2026-06-15T10:02:42.9205883Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9205979Z               "line": 606
2026-06-15T10:02:42.9206060Z             },
2026-06-15T10:02:42.9206141Z             {
2026-06-15T10:02:42.9206333Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9206432Z               "line": 634
2026-06-15T10:02:42.9206522Z             },
2026-06-15T10:02:42.9206681Z             {
2026-06-15T10:02:42.9206809Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9206904Z               "line": 646
2026-06-15T10:02:42.9207000Z             },
2026-06-15T10:02:42.9207081Z             {
2026-06-15T10:02:42.9207199Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9207282Z               "line": 669
2026-06-15T10:02:42.9207376Z             },
2026-06-15T10:02:42.9207472Z             {
2026-06-15T10:02:42.9207573Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9207677Z               "line": 6876
2026-06-15T10:02:42.9207752Z             }
2026-06-15T10:02:42.9207832Z           ]
2026-06-15T10:02:42.9207914Z         }
2026-06-15T10:02:42.9207996Z       }
2026-06-15T10:02:42.9208090Z     },
2026-06-15T10:02:42.9208171Z     {
2026-06-15T10:02:42.9208257Z       "id": "REQ-TERM-6",
2026-06-15T10:02:42.9209454Z       "title": "Thread-spanning digest across session boundaries: a per-endpoint session ledger (`<perch>/sessions.log`) appended at first bind and by `api boundary` on `/clear`|`/compact` session rotation, the digest enumerating the last K sessions so its rolling window bridges a boundary, and a distinctive in-timeline boundary marker (DigestEntry::Boundary). The digest follows the live-agent thread, not a single session.",
2026-06-15T10:02:42.9209574Z       "requiredStages": [
2026-06-15T10:02:42.9209663Z         "impl",
2026-06-15T10:02:42.9209744Z         "unit",
2026-06-15T10:02:42.9209827Z         "int"
2026-06-15T10:02:42.9209908Z       ],
2026-06-15T10:02:42.9209992Z       "stages": {
2026-06-15T10:02:42.9210091Z         "doc": {
2026-06-15T10:02:42.9210187Z           "complete": false,
2026-06-15T10:02:42.9210281Z           "evidence": []
2026-06-15T10:02:42.9210361Z         },
2026-06-15T10:02:42.9210462Z         "impl": {
2026-06-15T10:02:42.9210553Z           "complete": true,
2026-06-15T10:02:42.9210652Z           "evidence": [
2026-06-15T10:02:42.9210728Z             {
2026-06-15T10:02:42.9210844Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T10:02:42.9210939Z               "line": 132
2026-06-15T10:02:42.9211009Z             },
2026-06-15T10:02:42.9211096Z             {
2026-06-15T10:02:42.9211210Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T10:02:42.9211310Z               "line": 176
2026-06-15T10:02:42.9211391Z             },
2026-06-15T10:02:42.9211469Z             {
2026-06-15T10:02:42.9211597Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T10:02:42.9211687Z               "line": 17
2026-06-15T10:02:42.9211778Z             },
2026-06-15T10:02:42.9211849Z             {
2026-06-15T10:02:42.9211973Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T10:02:42.9212069Z               "line": 96
2026-06-15T10:02:42.9212159Z             },
2026-06-15T10:02:42.9212245Z             {
2026-06-15T10:02:42.9212365Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9212456Z               "line": 319
2026-06-15T10:02:42.9212535Z             },
2026-06-15T10:02:42.9212626Z             {
2026-06-15T10:02:42.9212747Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9212836Z               "line": 396
2026-06-15T10:02:42.9212916Z             }
2026-06-15T10:02:42.9212992Z           ]
2026-06-15T10:02:42.9213074Z         },
2026-06-15T10:02:42.9213153Z         "int": {
2026-06-15T10:02:42.9213252Z           "complete": true,
2026-06-15T10:02:42.9213347Z           "evidence": [
2026-06-15T10:02:42.9213434Z             {
2026-06-15T10:02:42.9213581Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T10:02:42.9213662Z               "line": 18
2026-06-15T10:02:42.9213749Z             }
2026-06-15T10:02:42.9213834Z           ]
2026-06-15T10:02:42.9214031Z         },
2026-06-15T10:02:42.9214116Z         "unit": {
2026-06-15T10:02:42.9214210Z           "complete": true,
2026-06-15T10:02:42.9214306Z           "evidence": [
2026-06-15T10:02:42.9214473Z             {
2026-06-15T10:02:42.9214597Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T10:02:42.9214679Z               "line": 126
2026-06-15T10:02:42.9214773Z             },
2026-06-15T10:02:42.9214869Z             {
2026-06-15T10:02:42.9214985Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T10:02:42.9215078Z               "line": 141
2026-06-15T10:02:42.9215155Z             },
2026-06-15T10:02:42.9215246Z             {
2026-06-15T10:02:42.9215365Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T10:02:42.9215459Z               "line": 157
2026-06-15T10:02:42.9215544Z             },
2026-06-15T10:02:42.9215621Z             {
2026-06-15T10:02:42.9215743Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-15T10:02:42.9215823Z               "line": 175
2026-06-15T10:02:42.9215924Z             },
2026-06-15T10:02:42.9216006Z             {
2026-06-15T10:02:42.9216138Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9216239Z               "line": 738
2026-06-15T10:02:42.9216325Z             },
2026-06-15T10:02:42.9216410Z             {
2026-06-15T10:02:42.9216525Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9216620Z               "line": 759
2026-06-15T10:02:42.9216701Z             },
2026-06-15T10:02:42.9216777Z             {
2026-06-15T10:02:42.9216898Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-15T10:02:42.9216987Z               "line": 602
2026-06-15T10:02:42.9217068Z             }
2026-06-15T10:02:42.9217149Z           ]
2026-06-15T10:02:42.9217236Z         }
2026-06-15T10:02:42.9217316Z       }
2026-06-15T10:02:42.9217397Z     },
2026-06-15T10:02:42.9217479Z     {
2026-06-15T10:02:42.9217575Z       "id": "REQ-TERM-7",
2026-06-15T10:02:42.9218702Z       "title": "Two-origin digest merge: spt-owned context-injection entries (psyche_download | echo_mirror | owl_message) appended by spt to the endpoint `digest.log`, timestamp-interleaved with the adapter's extracted activity records into one ordered timeline, via a distinct context-injection record category. Data model only this milestone; GUI collapse/expand and the echo-reads-digest delta loop are deferred to the surfaces that consume them.",
2026-06-15T10:02:42.9218813Z       "requiredStages": [
2026-06-15T10:02:42.9218894Z         "impl",
2026-06-15T10:02:42.9219109Z         "unit",
2026-06-15T10:02:42.9219195Z         "int"
2026-06-15T10:02:42.9219280Z       ],
2026-06-15T10:02:42.9219365Z       "stages": {
2026-06-15T10:02:42.9219462Z         "doc": {
2026-06-15T10:02:42.9219551Z           "complete": false,
2026-06-15T10:02:42.9219642Z           "evidence": []
2026-06-15T10:02:42.9219738Z         },
2026-06-15T10:02:42.9219819Z         "impl": {
2026-06-15T10:02:42.9219919Z           "complete": true,
2026-06-15T10:02:42.9220009Z           "evidence": [
2026-06-15T10:02:42.9220106Z             {
2026-06-15T10:02:42.9220218Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T10:02:42.9220309Z               "line": 133
2026-06-15T10:02:42.9220401Z             },
2026-06-15T10:02:42.9220482Z             {
2026-06-15T10:02:42.9220600Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T10:02:42.9220685Z               "line": 311
2026-06-15T10:02:42.9220776Z             },
2026-06-15T10:02:42.9220869Z             {
2026-06-15T10:02:42.9220978Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T10:02:42.9221069Z               "line": 15
2026-06-15T10:02:42.9221156Z             },
2026-06-15T10:02:42.9221236Z             {
2026-06-15T10:02:42.9221341Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T10:02:42.9221437Z               "line": 32
2026-06-15T10:02:42.9221531Z             },
2026-06-15T10:02:42.9221613Z             {
2026-06-15T10:02:42.9221865Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T10:02:42.9221951Z               "line": 49
2026-06-15T10:02:42.9222043Z             },
2026-06-15T10:02:42.9222218Z             {
2026-06-15T10:02:42.9222348Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9222433Z               "line": 286
2026-06-15T10:02:42.9222518Z             },
2026-06-15T10:02:42.9222595Z             {
2026-06-15T10:02:42.9222715Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9222810Z               "line": 320
2026-06-15T10:02:42.9222891Z             }
2026-06-15T10:02:42.9222978Z           ]
2026-06-15T10:02:42.9223058Z         },
2026-06-15T10:02:42.9223134Z         "int": {
2026-06-15T10:02:42.9223230Z           "complete": true,
2026-06-15T10:02:42.9223312Z           "evidence": [
2026-06-15T10:02:42.9223400Z             {
2026-06-15T10:02:42.9223552Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-15T10:02:42.9223704Z               "line": 19
2026-06-15T10:02:42.9223793Z             }
2026-06-15T10:02:42.9223898Z           ]
2026-06-15T10:02:42.9223975Z         },
2026-06-15T10:02:42.9224070Z         "unit": {
2026-06-15T10:02:42.9224165Z           "complete": true,
2026-06-15T10:02:42.9224262Z           "evidence": [
2026-06-15T10:02:42.9224357Z             {
2026-06-15T10:02:42.9224470Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T10:02:42.9224552Z               "line": 440
2026-06-15T10:02:42.9224647Z             },
2026-06-15T10:02:42.9224728Z             {
2026-06-15T10:02:42.9224852Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-15T10:02:42.9224938Z               "line": 551
2026-06-15T10:02:42.9225033Z             },
2026-06-15T10:02:42.9225133Z             {
2026-06-15T10:02:42.9225244Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T10:02:42.9225329Z               "line": 58
2026-06-15T10:02:42.9225414Z             },
2026-06-15T10:02:42.9225506Z             {
2026-06-15T10:02:42.9225610Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T10:02:42.9225695Z               "line": 77
2026-06-15T10:02:42.9225787Z             },
2026-06-15T10:02:42.9225874Z             {
2026-06-15T10:02:42.9225991Z               "path": "crates/spt-live/src/inject.rs",
2026-06-15T10:02:42.9226080Z               "line": 87
2026-06-15T10:02:42.9226167Z             },
2026-06-15T10:02:42.9226256Z             {
2026-06-15T10:02:42.9226365Z               "path": "crates/spt-store/src/history.rs",
2026-06-15T10:02:42.9226455Z               "line": 94
2026-06-15T10:02:42.9226537Z             },
2026-06-15T10:02:42.9226613Z             {
2026-06-15T10:02:42.9226736Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9226833Z               "line": 691
2026-06-15T10:02:42.9226913Z             },
2026-06-15T10:02:42.9226999Z             {
2026-06-15T10:02:42.9227119Z               "path": "crates/spt-term/src/projection.rs",
2026-06-15T10:02:42.9227209Z               "line": 716
2026-06-15T10:02:42.9227295Z             }
2026-06-15T10:02:42.9227375Z           ]
2026-06-15T10:02:42.9227458Z         }
2026-06-15T10:02:42.9227543Z       }
2026-06-15T10:02:42.9227624Z     },
2026-06-15T10:02:42.9227705Z     {
2026-06-15T10:02:42.9227796Z       "id": "REQ-UPD-1",
2026-06-15T10:02:42.9227924Z       "title": "Peer-propagated update over P2P",
2026-06-15T10:02:42.9228019Z       "requiredStages": [
2026-06-15T10:02:42.9228101Z         "impl",
2026-06-15T10:02:42.9228186Z         "unit",
2026-06-15T10:02:42.9228277Z         "int"
2026-06-15T10:02:42.9228359Z       ],
2026-06-15T10:02:42.9228450Z       "stages": {
2026-06-15T10:02:42.9228544Z         "doc": {
2026-06-15T10:02:42.9228629Z           "complete": false,
2026-06-15T10:02:42.9228731Z           "evidence": []
2026-06-15T10:02:42.9228816Z         },
2026-06-15T10:02:42.9228905Z         "impl": {
2026-06-15T10:02:42.9229082Z           "complete": true,
2026-06-15T10:02:42.9229178Z           "evidence": [
2026-06-15T10:02:42.9229373Z             {
2026-06-15T10:02:42.9229558Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T10:02:42.9229654Z               "line": 28
2026-06-15T10:02:42.9229840Z             },
2026-06-15T10:02:42.9229915Z             {
2026-06-15T10:02:42.9230041Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T10:02:42.9230135Z               "line": 103
2026-06-15T10:02:42.9230220Z             },
2026-06-15T10:02:42.9230303Z             {
2026-06-15T10:02:42.9230427Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T10:02:42.9230526Z               "line": 342
2026-06-15T10:02:42.9230603Z             },
2026-06-15T10:02:42.9230690Z             {
2026-06-15T10:02:42.9230812Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9230904Z               "line": 22
2026-06-15T10:02:42.9230985Z             },
2026-06-15T10:02:42.9231065Z             {
2026-06-15T10:02:42.9231193Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9231283Z               "line": 207
2026-06-15T10:02:42.9231369Z             },
2026-06-15T10:02:42.9231453Z             {
2026-06-15T10:02:42.9231577Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9231659Z               "line": 283
2026-06-15T10:02:42.9231749Z             },
2026-06-15T10:02:42.9231839Z             {
2026-06-15T10:02:42.9231949Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9232045Z               "line": 340
2026-06-15T10:02:42.9232125Z             },
2026-06-15T10:02:42.9232216Z             {
2026-06-15T10:02:42.9235302Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T10:02:42.9235426Z               "line": 37
2026-06-15T10:02:42.9235526Z             }
2026-06-15T10:02:42.9235607Z           ]
2026-06-15T10:02:42.9235688Z         },
2026-06-15T10:02:42.9235771Z         "int": {
2026-06-15T10:02:42.9235879Z           "complete": true,
2026-06-15T10:02:42.9235984Z           "evidence": [
2026-06-15T10:02:42.9236076Z             {
2026-06-15T10:02:42.9236222Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-15T10:02:42.9236318Z               "line": 207
2026-06-15T10:02:42.9236410Z             },
2026-06-15T10:02:42.9236495Z             {
2026-06-15T10:02:42.9236631Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-15T10:02:42.9236722Z               "line": 988
2026-06-15T10:02:42.9236816Z             }
2026-06-15T10:02:42.9236896Z           ]
2026-06-15T10:02:42.9236972Z         },
2026-06-15T10:02:42.9237064Z         "unit": {
2026-06-15T10:02:42.9237159Z           "complete": true,
2026-06-15T10:02:42.9237254Z           "evidence": [
2026-06-15T10:02:42.9237330Z             {
2026-06-15T10:02:42.9237455Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9237554Z               "line": 490
2026-06-15T10:02:42.9237635Z             },
2026-06-15T10:02:42.9237717Z             {
2026-06-15T10:02:42.9237836Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9237930Z               "line": 616
2026-06-15T10:02:42.9238013Z             },
2026-06-15T10:02:42.9238098Z             {
2026-06-15T10:02:42.9238236Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T10:02:42.9238323Z               "line": 277
2026-06-15T10:02:42.9238408Z             },
2026-06-15T10:02:42.9238484Z             {
2026-06-15T10:02:42.9238608Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T10:02:42.9238704Z               "line": 124
2026-06-15T10:02:42.9238784Z             },
2026-06-15T10:02:42.9238870Z             {
2026-06-15T10:02:42.9239056Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T10:02:42.9239152Z               "line": 200
2026-06-15T10:02:42.9239234Z             }
2026-06-15T10:02:42.9239329Z           ]
2026-06-15T10:02:42.9239423Z         }
2026-06-15T10:02:42.9239503Z       }
2026-06-15T10:02:42.9239594Z     },
2026-06-15T10:02:42.9239813Z     {
2026-06-15T10:02:42.9239914Z       "id": "REQ-UPD-2",
2026-06-15T10:02:42.9240057Z       "title": "All binaries signature-verified before handoff",
2026-06-15T10:02:42.9240248Z       "requiredStages": [
2026-06-15T10:02:42.9240343Z         "impl",
2026-06-15T10:02:42.9240419Z         "unit"
2026-06-15T10:02:42.9240500Z       ],
2026-06-15T10:02:42.9240577Z       "stages": {
2026-06-15T10:02:42.9240667Z         "doc": {
2026-06-15T10:02:42.9240762Z           "complete": false,
2026-06-15T10:02:42.9240858Z           "evidence": []
2026-06-15T10:02:42.9240939Z         },
2026-06-15T10:02:42.9241024Z         "impl": {
2026-06-15T10:02:42.9241124Z           "complete": true,
2026-06-15T10:02:42.9241211Z           "evidence": [
2026-06-15T10:02:42.9241297Z             {
2026-06-15T10:02:42.9241429Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T10:02:42.9241526Z               "line": 343
2026-06-15T10:02:42.9241612Z             },
2026-06-15T10:02:42.9241686Z             {
2026-06-15T10:02:42.9241815Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T10:02:42.9241901Z               "line": 476
2026-06-15T10:02:42.9241999Z             },
2026-06-15T10:02:42.9242084Z             {
2026-06-15T10:02:42.9242199Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9242291Z               "line": 29
2026-06-15T10:02:42.9242370Z             },
2026-06-15T10:02:42.9242451Z             {
2026-06-15T10:02:42.9242566Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9242661Z               "line": 271
2026-06-15T10:02:42.9242747Z             },
2026-06-15T10:02:42.9242829Z             {
2026-06-15T10:02:42.9242948Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9243042Z               "line": 288
2026-06-15T10:02:42.9243134Z             },
2026-06-15T10:02:42.9243215Z             {
2026-06-15T10:02:42.9243338Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9243425Z               "line": 408
2026-06-15T10:02:42.9243520Z             },
2026-06-15T10:02:42.9243606Z             {
2026-06-15T10:02:42.9243725Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9243821Z               "line": 540
2026-06-15T10:02:42.9243905Z             },
2026-06-15T10:02:42.9243987Z             {
2026-06-15T10:02:42.9244108Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T10:02:42.9244201Z               "line": 155
2026-06-15T10:02:42.9244282Z             }
2026-06-15T10:02:42.9244365Z           ]
2026-06-15T10:02:42.9244451Z         },
2026-06-15T10:02:42.9244539Z         "int": {
2026-06-15T10:02:42.9244643Z           "complete": false,
2026-06-15T10:02:42.9244739Z           "evidence": []
2026-06-15T10:02:42.9244833Z         },
2026-06-15T10:02:42.9244927Z         "unit": {
2026-06-15T10:02:42.9245019Z           "complete": true,
2026-06-15T10:02:42.9245114Z           "evidence": [
2026-06-15T10:02:42.9245195Z             {
2026-06-15T10:02:42.9245323Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9245410Z               "line": 697
2026-06-15T10:02:42.9245505Z             },
2026-06-15T10:02:42.9245595Z             {
2026-06-15T10:02:42.9245720Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9245815Z               "line": 758
2026-06-15T10:02:42.9245890Z             },
2026-06-15T10:02:42.9245977Z             {
2026-06-15T10:02:42.9246096Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9246191Z               "line": 772
2026-06-15T10:02:42.9246282Z             },
2026-06-15T10:02:42.9246369Z             {
2026-06-15T10:02:42.9246491Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9246572Z               "line": 788
2026-06-15T10:02:42.9246655Z             },
2026-06-15T10:02:42.9246740Z             {
2026-06-15T10:02:42.9246854Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9247022Z               "line": 879
2026-06-15T10:02:42.9247106Z             },
2026-06-15T10:02:42.9247186Z             {
2026-06-15T10:02:42.9247301Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T10:02:42.9247461Z               "line": 414
2026-06-15T10:02:42.9247546Z             },
2026-06-15T10:02:42.9247633Z             {
2026-06-15T10:02:42.9247752Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T10:02:42.9247837Z               "line": 427
2026-06-15T10:02:42.9247929Z             },
2026-06-15T10:02:42.9248015Z             {
2026-06-15T10:02:42.9248147Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T10:02:42.9248234Z               "line": 410
2026-06-15T10:02:42.9248320Z             }
2026-06-15T10:02:42.9248396Z           ]
2026-06-15T10:02:42.9248476Z         }
2026-06-15T10:02:42.9248559Z       }
2026-06-15T10:02:42.9248639Z     },
2026-06-15T10:02:42.9248720Z     {
2026-06-15T10:02:42.9248805Z       "id": "REQ-UPD-3",
2026-06-15T10:02:42.9249087Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-15T10:02:42.9249183Z       "requiredStages": [
2026-06-15T10:02:42.9249273Z         "impl",
2026-06-15T10:02:42.9249378Z         "unit",
2026-06-15T10:02:42.9249454Z         "int"
2026-06-15T10:02:42.9249541Z       ],
2026-06-15T10:02:42.9249635Z       "stages": {
2026-06-15T10:02:42.9249712Z         "doc": {
2026-06-15T10:02:42.9249813Z           "complete": false,
2026-06-15T10:02:42.9249908Z           "evidence": []
2026-06-15T10:02:42.9249987Z         },
2026-06-15T10:02:42.9250077Z         "impl": {
2026-06-15T10:02:42.9250174Z           "complete": true,
2026-06-15T10:02:42.9250265Z           "evidence": [
2026-06-15T10:02:42.9250345Z             {
2026-06-15T10:02:42.9250479Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T10:02:42.9250570Z               "line": 40
2026-06-15T10:02:42.9250655Z             },
2026-06-15T10:02:42.9250735Z             {
2026-06-15T10:02:42.9250861Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T10:02:42.9250965Z               "line": 87
2026-06-15T10:02:42.9251045Z             },
2026-06-15T10:02:42.9251142Z             {
2026-06-15T10:02:42.9251255Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-15T10:02:42.9251350Z               "line": 993
2026-06-15T10:02:42.9251433Z             },
2026-06-15T10:02:42.9251523Z             {
2026-06-15T10:02:42.9251646Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-15T10:02:42.9251738Z               "line": 1085
2026-06-15T10:02:42.9251828Z             },
2026-06-15T10:02:42.9251917Z             {
2026-06-15T10:02:42.9252028Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T10:02:42.9252110Z               "line": 26
2026-06-15T10:02:42.9252204Z             },
2026-06-15T10:02:42.9252289Z             {
2026-06-15T10:02:42.9252408Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T10:02:42.9252508Z               "line": 114
2026-06-15T10:02:42.9252597Z             },
2026-06-15T10:02:42.9252682Z             {
2026-06-15T10:02:42.9252802Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T10:02:42.9252902Z               "line": 246
2026-06-15T10:02:42.9252997Z             },
2026-06-15T10:02:42.9253079Z             {
2026-06-15T10:02:42.9253188Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9253278Z               "line": 2178
2026-06-15T10:02:42.9253370Z             }
2026-06-15T10:02:42.9253446Z           ]
2026-06-15T10:02:42.9253541Z         },
2026-06-15T10:02:42.9253622Z         "int": {
2026-06-15T10:02:42.9253718Z           "complete": true,
2026-06-15T10:02:42.9253813Z           "evidence": [
2026-06-15T10:02:42.9253893Z             {
2026-06-15T10:02:42.9254033Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-15T10:02:42.9254122Z               "line": 58
2026-06-15T10:02:42.9254198Z             }
2026-06-15T10:02:42.9254280Z           ]
2026-06-15T10:02:42.9254362Z         },
2026-06-15T10:02:42.9254585Z         "unit": {
2026-06-15T10:02:42.9254682Z           "complete": true,
2026-06-15T10:02:42.9254780Z           "evidence": [
2026-06-15T10:02:42.9254949Z             {
2026-06-15T10:02:42.9255090Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T10:02:42.9255190Z               "line": 532
2026-06-15T10:02:42.9255275Z             },
2026-06-15T10:02:42.9255356Z             {
2026-06-15T10:02:42.9255478Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T10:02:42.9255574Z               "line": 583
2026-06-15T10:02:42.9255660Z             },
2026-06-15T10:02:42.9255750Z             {
2026-06-15T10:02:42.9255878Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T10:02:42.9255970Z               "line": 651
2026-06-15T10:02:42.9256056Z             },
2026-06-15T10:02:42.9256145Z             {
2026-06-15T10:02:42.9256261Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-15T10:02:42.9256351Z               "line": 1062
2026-06-15T10:02:42.9256450Z             },
2026-06-15T10:02:42.9256542Z             {
2026-06-15T10:02:42.9256660Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T10:02:42.9256756Z               "line": 271
2026-06-15T10:02:42.9256837Z             },
2026-06-15T10:02:42.9256920Z             {
2026-06-15T10:02:42.9257023Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T10:02:42.9257114Z               "line": 295
2026-06-15T10:02:42.9257196Z             },
2026-06-15T10:02:42.9257276Z             {
2026-06-15T10:02:42.9257385Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T10:02:42.9257477Z               "line": 316
2026-06-15T10:02:42.9257554Z             },
2026-06-15T10:02:42.9257647Z             {
2026-06-15T10:02:42.9257760Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T10:02:42.9257857Z               "line": 332
2026-06-15T10:02:42.9257932Z             }
2026-06-15T10:02:42.9258016Z           ]
2026-06-15T10:02:42.9258106Z         }
2026-06-15T10:02:42.9258198Z       }
2026-06-15T10:02:42.9258279Z     },
2026-06-15T10:02:42.9258369Z     {
2026-06-15T10:02:42.9258469Z       "id": "REQ-UPD-4",
2026-06-15T10:02:42.9258655Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-15T10:02:42.9258760Z       "requiredStages": [
2026-06-15T10:02:42.9258846Z         "impl",
2026-06-15T10:02:42.9259013Z         "unit"
2026-06-15T10:02:42.9259099Z       ],
2026-06-15T10:02:42.9259189Z       "stages": {
2026-06-15T10:02:42.9259280Z         "doc": {
2026-06-15T10:02:42.9259389Z           "complete": false,
2026-06-15T10:02:42.9259490Z           "evidence": []
2026-06-15T10:02:42.9259571Z         },
2026-06-15T10:02:42.9259652Z         "impl": {
2026-06-15T10:02:42.9259738Z           "complete": true,
2026-06-15T10:02:42.9259829Z           "evidence": [
2026-06-15T10:02:42.9259914Z             {
2026-06-15T10:02:42.9260039Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T10:02:42.9260139Z               "line": 41
2026-06-15T10:02:42.9260219Z             },
2026-06-15T10:02:42.9260301Z             {
2026-06-15T10:02:42.9260421Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T10:02:42.9260515Z               "line": 88
2026-06-15T10:02:42.9260609Z             },
2026-06-15T10:02:42.9260690Z             {
2026-06-15T10:02:42.9260810Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T10:02:42.9260891Z               "line": 23
2026-06-15T10:02:42.9260986Z             },
2026-06-15T10:02:42.9261077Z             {
2026-06-15T10:02:42.9261187Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T10:02:42.9261286Z               "line": 56
2026-06-15T10:02:42.9261359Z             },
2026-06-15T10:02:42.9261439Z             {
2026-06-15T10:02:42.9261544Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T10:02:42.9261639Z               "line": 77
2026-06-15T10:02:42.9261740Z             },
2026-06-15T10:02:42.9262088Z             {
2026-06-15T10:02:42.9262216Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-15T10:02:42.9262318Z               "line": 186
2026-06-15T10:02:42.9262502Z             },
2026-06-15T10:02:42.9262579Z             {
2026-06-15T10:02:42.9262699Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-15T10:02:42.9262802Z               "line": 108
2026-06-15T10:02:42.9262883Z             },
2026-06-15T10:02:42.9262969Z             {
2026-06-15T10:02:42.9263082Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T10:02:42.9263176Z               "line": 180
2026-06-15T10:02:42.9263257Z             },
2026-06-15T10:02:42.9263344Z             {
2026-06-15T10:02:42.9263448Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9263538Z               "line": 2177
2026-06-15T10:02:42.9263624Z             }
2026-06-15T10:02:42.9263705Z           ]
2026-06-15T10:02:42.9263791Z         },
2026-06-15T10:02:42.9263876Z         "int": {
2026-06-15T10:02:42.9263983Z           "complete": false,
2026-06-15T10:02:42.9264082Z           "evidence": []
2026-06-15T10:02:42.9264167Z         },
2026-06-15T10:02:42.9264264Z         "unit": {
2026-06-15T10:02:42.9264363Z           "complete": true,
2026-06-15T10:02:42.9264458Z           "evidence": [
2026-06-15T10:02:42.9264540Z             {
2026-06-15T10:02:42.9264654Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T10:02:42.9264754Z               "line": 579
2026-06-15T10:02:42.9264835Z             },
2026-06-15T10:02:42.9264927Z             {
2026-06-15T10:02:42.9265045Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T10:02:42.9265145Z               "line": 704
2026-06-15T10:02:42.9265232Z             },
2026-06-15T10:02:42.9265321Z             {
2026-06-15T10:02:42.9265446Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-15T10:02:42.9265528Z               "line": 384
2026-06-15T10:02:42.9265613Z             },
2026-06-15T10:02:42.9265688Z             {
2026-06-15T10:02:42.9265817Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T10:02:42.9265912Z               "line": 102
2026-06-15T10:02:42.9266005Z             },
2026-06-15T10:02:42.9266095Z             {
2026-06-15T10:02:42.9266215Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T10:02:42.9266306Z               "line": 123
2026-06-15T10:02:42.9266391Z             },
2026-06-15T10:02:42.9266482Z             {
2026-06-15T10:02:42.9266592Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-15T10:02:42.9266681Z               "line": 142
2026-06-15T10:02:42.9266773Z             },
2026-06-15T10:02:42.9266854Z             {
2026-06-15T10:02:42.9266973Z               "path": "crates/spt-store/src/info.rs",
2026-06-15T10:02:42.9267058Z               "line": 413
2026-06-15T10:02:42.9267150Z             },
2026-06-15T10:02:42.9267230Z             {
2026-06-15T10:02:42.9267359Z               "path": "crates/spt-store/src/perch.rs",
2026-06-15T10:02:42.9267460Z               "line": 566
2026-06-15T10:02:42.9267549Z             },
2026-06-15T10:02:42.9267635Z             {
2026-06-15T10:02:42.9267741Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9267841Z               "line": 6650
2026-06-15T10:02:42.9267926Z             }
2026-06-15T10:02:42.9268022Z           ]
2026-06-15T10:02:42.9268100Z         }
2026-06-15T10:02:42.9268184Z       }
2026-06-15T10:02:42.9268274Z     },
2026-06-15T10:02:42.9268359Z     {
2026-06-15T10:02:42.9268459Z       "id": "REQ-UPD-5",
2026-06-15T10:02:42.9268610Z       "title": "spt-core ripple-updates registered adapters",
2026-06-15T10:02:42.9268710Z       "requiredStages": [
2026-06-15T10:02:42.9268801Z         "impl",
2026-06-15T10:02:42.9268886Z         "unit"
2026-06-15T10:02:42.9269044Z       ],
2026-06-15T10:02:42.9269130Z       "stages": {
2026-06-15T10:02:42.9269220Z         "doc": {
2026-06-15T10:02:42.9269335Z           "complete": false,
2026-06-15T10:02:42.9269430Z           "evidence": []
2026-06-15T10:02:42.9269654Z         },
2026-06-15T10:02:42.9269740Z         "impl": {
2026-06-15T10:02:42.9269840Z           "complete": true,
2026-06-15T10:02:42.9269925Z           "evidence": [
2026-06-15T10:02:42.9270102Z             {
2026-06-15T10:02:42.9270231Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T10:02:42.9270318Z               "line": 27
2026-06-15T10:02:42.9270407Z             },
2026-06-15T10:02:42.9270483Z             {
2026-06-15T10:02:42.9270608Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T10:02:42.9270690Z               "line": 82
2026-06-15T10:02:42.9270784Z             },
2026-06-15T10:02:42.9270875Z             {
2026-06-15T10:02:42.9270995Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T10:02:42.9271093Z               "line": 134
2026-06-15T10:02:42.9271174Z             },
2026-06-15T10:02:42.9271255Z             {
2026-06-15T10:02:42.9271370Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9271474Z               "line": 492
2026-06-15T10:02:42.9271560Z             },
2026-06-15T10:02:42.9271642Z             {
2026-06-15T10:02:42.9271770Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9271855Z               "line": 528
2026-06-15T10:02:42.9271952Z             }
2026-06-15T10:02:42.9272033Z           ]
2026-06-15T10:02:42.9272113Z         },
2026-06-15T10:02:42.9272204Z         "int": {
2026-06-15T10:02:42.9272300Z           "complete": false,
2026-06-15T10:02:42.9272390Z           "evidence": []
2026-06-15T10:02:42.9272470Z         },
2026-06-15T10:02:42.9272563Z         "unit": {
2026-06-15T10:02:42.9272653Z           "complete": true,
2026-06-15T10:02:42.9272743Z           "evidence": [
2026-06-15T10:02:42.9272834Z             {
2026-06-15T10:02:42.9272953Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T10:02:42.9273052Z               "line": 232
2026-06-15T10:02:42.9273134Z             },
2026-06-15T10:02:42.9273230Z             {
2026-06-15T10:02:42.9273348Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T10:02:42.9273452Z               "line": 246
2026-06-15T10:02:42.9273547Z             },
2026-06-15T10:02:42.9273628Z             {
2026-06-15T10:02:42.9273750Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T10:02:42.9273832Z               "line": 260
2026-06-15T10:02:42.9273922Z             },
2026-06-15T10:02:42.9274003Z             {
2026-06-15T10:02:42.9274136Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T10:02:42.9274228Z               "line": 274
2026-06-15T10:02:42.9274313Z             },
2026-06-15T10:02:42.9274398Z             {
2026-06-15T10:02:42.9274519Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-15T10:02:42.9274619Z               "line": 308
2026-06-15T10:02:42.9274698Z             },
2026-06-15T10:02:42.9274791Z             {
2026-06-15T10:02:42.9274918Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-15T10:02:42.9275013Z               "line": 879
2026-06-15T10:02:42.9275100Z             }
2026-06-15T10:02:42.9275182Z           ]
2026-06-15T10:02:42.9275281Z         }
2026-06-15T10:02:42.9275366Z       }
2026-06-15T10:02:42.9275439Z     },
2026-06-15T10:02:42.9275520Z     {
2026-06-15T10:02:42.9275615Z       "id": "REQ-UPD-6",
2026-06-15T10:02:42.9276429Z       "title": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)",
2026-06-15T10:02:42.9276532Z       "requiredStages": [
2026-06-15T10:02:42.9276627Z         "doc",
2026-06-15T10:02:42.9276718Z         "impl",
2026-06-15T10:02:42.9276799Z         "unit",
2026-06-15T10:02:42.9276894Z         "int"
2026-06-15T10:02:42.9276975Z       ],
2026-06-15T10:02:42.9277071Z       "stages": {
2026-06-15T10:02:42.9277227Z         "doc": {
2026-06-15T10:02:42.9277328Z           "complete": true,
2026-06-15T10:02:42.9277424Z           "evidence": [
2026-06-15T10:02:42.9277590Z             {
2026-06-15T10:02:42.9277720Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T10:02:42.9277800Z               "line": 3
2026-06-15T10:02:42.9277895Z             },
2026-06-15T10:02:42.9277977Z             {
2026-06-15T10:02:42.9278091Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-15T10:02:42.9278172Z               "line": 3
2026-06-15T10:02:42.9278258Z             },
2026-06-15T10:02:42.9278340Z             {
2026-06-15T10:02:42.9278496Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-15T10:02:42.9278587Z               "line": 3
2026-06-15T10:02:42.9278669Z             }
2026-06-15T10:02:42.9278753Z           ]
2026-06-15T10:02:42.9278843Z         },
2026-06-15T10:02:42.9278919Z         "impl": {
2026-06-15T10:02:42.9279066Z           "complete": true,
2026-06-15T10:02:42.9279156Z           "evidence": [
2026-06-15T10:02:42.9279256Z             {
2026-06-15T10:02:42.9279376Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T10:02:42.9279479Z               "line": 76
2026-06-15T10:02:42.9279570Z             },
2026-06-15T10:02:42.9279652Z             {
2026-06-15T10:02:42.9279775Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T10:02:42.9279865Z               "line": 212
2026-06-15T10:02:42.9279953Z             },
2026-06-15T10:02:42.9280038Z             {
2026-06-15T10:02:42.9280166Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T10:02:42.9280263Z               "line": 69
2026-06-15T10:02:42.9280343Z             },
2026-06-15T10:02:42.9280428Z             {
2026-06-15T10:02:42.9280548Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T10:02:42.9280643Z               "line": 133
2026-06-15T10:02:42.9280724Z             },
2026-06-15T10:02:42.9280805Z             {
2026-06-15T10:02:42.9280930Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T10:02:42.9281019Z               "line": 243
2026-06-15T10:02:42.9281111Z             },
2026-06-15T10:02:42.9281197Z             {
2026-06-15T10:02:42.9281315Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T10:02:42.9281411Z               "line": 406
2026-06-15T10:02:42.9281493Z             },
2026-06-15T10:02:42.9281574Z             {
2026-06-15T10:02:42.9281696Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T10:02:42.9281791Z               "line": 534
2026-06-15T10:02:42.9281868Z             },
2026-06-15T10:02:42.9281959Z             {
2026-06-15T10:02:42.9282086Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T10:02:42.9282168Z               "line": 548
2026-06-15T10:02:42.9282269Z             },
2026-06-15T10:02:42.9282349Z             {
2026-06-15T10:02:42.9282474Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T10:02:42.9282564Z               "line": 603
2026-06-15T10:02:42.9282654Z             },
2026-06-15T10:02:42.9282745Z             {
2026-06-15T10:02:42.9282864Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T10:02:42.9282965Z               "line": 634
2026-06-15T10:02:42.9283045Z             },
2026-06-15T10:02:42.9283132Z             {
2026-06-15T10:02:42.9283260Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T10:02:42.9283355Z               "line": 137
2026-06-15T10:02:42.9283438Z             },
2026-06-15T10:02:42.9283518Z             {
2026-06-15T10:02:42.9283646Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-15T10:02:42.9283737Z               "line": 184
2026-06-15T10:02:42.9283828Z             },
2026-06-15T10:02:42.9283913Z             {
2026-06-15T10:02:42.9284036Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9284131Z               "line": 78
2026-06-15T10:02:42.9284211Z             },
2026-06-15T10:02:42.9284401Z             {
2026-06-15T10:02:42.9284521Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9284615Z               "line": 114
2026-06-15T10:02:42.9284779Z             },
2026-06-15T10:02:42.9284873Z             {
2026-06-15T10:02:42.9284997Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9285088Z               "line": 185
2026-06-15T10:02:42.9285164Z             },
2026-06-15T10:02:42.9285244Z             {
2026-06-15T10:02:42.9285365Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9285469Z               "line": 260
2026-06-15T10:02:42.9285545Z             },
2026-06-15T10:02:42.9285640Z             {
2026-06-15T10:02:42.9285751Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9285846Z               "line": 292
2026-06-15T10:02:42.9285931Z             },
2026-06-15T10:02:42.9286023Z             {
2026-06-15T10:02:42.9286145Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9286231Z               "line": 323
2026-06-15T10:02:42.9286314Z             },
2026-06-15T10:02:42.9286400Z             {
2026-06-15T10:02:42.9286518Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9286600Z               "line": 346
2026-06-15T10:02:42.9286696Z             },
2026-06-15T10:02:42.9286789Z             {
2026-06-15T10:02:42.9286907Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9286994Z               "line": 388
2026-06-15T10:02:42.9287069Z             },
2026-06-15T10:02:42.9287144Z             {
2026-06-15T10:02:42.9287268Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9287369Z               "line": 398
2026-06-15T10:02:42.9287463Z             },
2026-06-15T10:02:42.9287539Z             {
2026-06-15T10:02:42.9287664Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9287759Z               "line": 410
2026-06-15T10:02:42.9287849Z             },
2026-06-15T10:02:42.9287941Z             {
2026-06-15T10:02:42.9288060Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9288159Z               "line": 420
2026-06-15T10:02:42.9288246Z             },
2026-06-15T10:02:42.9288331Z             {
2026-06-15T10:02:42.9288445Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9288542Z               "line": 439
2026-06-15T10:02:42.9288628Z             },
2026-06-15T10:02:42.9288707Z             {
2026-06-15T10:02:42.9288832Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9288924Z               "line": 449
2026-06-15T10:02:42.9289080Z             },
2026-06-15T10:02:42.9289162Z             {
2026-06-15T10:02:42.9289286Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9289384Z               "line": 94
2026-06-15T10:02:42.9289469Z             },
2026-06-15T10:02:42.9289561Z             {
2026-06-15T10:02:42.9289663Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9289758Z               "line": 120
2026-06-15T10:02:42.9289839Z             },
2026-06-15T10:02:42.9289931Z             {
2026-06-15T10:02:42.9290059Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9290154Z               "line": 135
2026-06-15T10:02:42.9290250Z             },
2026-06-15T10:02:42.9290335Z             {
2026-06-15T10:02:42.9290450Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9290536Z               "line": 162
2026-06-15T10:02:42.9290636Z             },
2026-06-15T10:02:42.9290726Z             {
2026-06-15T10:02:42.9290846Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9290946Z               "line": 174
2026-06-15T10:02:42.9291027Z             },
2026-06-15T10:02:42.9291118Z             {
2026-06-15T10:02:42.9291236Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9291337Z               "line": 185
2026-06-15T10:02:42.9291532Z             },
2026-06-15T10:02:42.9291613Z             {
2026-06-15T10:02:42.9291733Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9291913Z               "line": 451
2026-06-15T10:02:42.9291995Z             },
2026-06-15T10:02:42.9292082Z             {
2026-06-15T10:02:42.9292204Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9292303Z               "line": 555
2026-06-15T10:02:42.9292384Z             },
2026-06-15T10:02:42.9292481Z             {
2026-06-15T10:02:42.9292599Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T10:02:42.9292699Z               "line": 171
2026-06-15T10:02:42.9292781Z             },
2026-06-15T10:02:42.9292876Z             {
2026-06-15T10:02:42.9292990Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T10:02:42.9293077Z               "line": 65
2026-06-15T10:02:42.9293172Z             },
2026-06-15T10:02:42.9293257Z             {
2026-06-15T10:02:42.9293378Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T10:02:42.9293468Z               "line": 71
2026-06-15T10:02:42.9293557Z             },
2026-06-15T10:02:42.9293639Z             {
2026-06-15T10:02:42.9293759Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-15T10:02:42.9293858Z               "line": 77
2026-06-15T10:02:42.9293934Z             },
2026-06-15T10:02:42.9294017Z             {
2026-06-15T10:02:42.9294125Z               "path": "crates/xtask/src/main.rs",
2026-06-15T10:02:42.9294230Z               "line": 778
2026-06-15T10:02:42.9294312Z             },
2026-06-15T10:02:42.9294393Z             {
2026-06-15T10:02:42.9294501Z               "path": "crates/xtask/src/main.rs",
2026-06-15T10:02:42.9294577Z               "line": 795
2026-06-15T10:02:42.9294663Z             },
2026-06-15T10:02:42.9294748Z             {
2026-06-15T10:02:42.9294851Z               "path": "crates/xtask/src/main.rs",
2026-06-15T10:02:42.9294947Z               "line": 838
2026-06-15T10:02:42.9295029Z             },
2026-06-15T10:02:42.9295128Z             {
2026-06-15T10:02:42.9295237Z               "path": "crates/xtask/src/main.rs",
2026-06-15T10:02:42.9295334Z               "line": 981
2026-06-15T10:02:42.9295438Z             },
2026-06-15T10:02:42.9295518Z             {
2026-06-15T10:02:42.9295620Z               "path": "crates/xtask/src/main.rs",
2026-06-15T10:02:42.9295710Z               "line": 1131
2026-06-15T10:02:42.9295805Z             }
2026-06-15T10:02:42.9295886Z           ]
2026-06-15T10:02:42.9295982Z         },
2026-06-15T10:02:42.9296068Z         "int": {
2026-06-15T10:02:42.9296162Z           "complete": true,
2026-06-15T10:02:42.9296263Z           "evidence": [
2026-06-15T10:02:42.9296349Z             {
2026-06-15T10:02:42.9296482Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T10:02:42.9296573Z               "line": 569
2026-06-15T10:02:42.9296663Z             },
2026-06-15T10:02:42.9296754Z             {
2026-06-15T10:02:42.9296865Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T10:02:42.9296969Z               "line": 135
2026-06-15T10:02:42.9297049Z             }
2026-06-15T10:02:42.9297131Z           ]
2026-06-15T10:02:42.9297217Z         },
2026-06-15T10:02:42.9297303Z         "unit": {
2026-06-15T10:02:42.9297401Z           "complete": true,
2026-06-15T10:02:42.9297482Z           "evidence": [
2026-06-15T10:02:42.9297578Z             {
2026-06-15T10:02:42.9297704Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T10:02:42.9297799Z               "line": 624
2026-06-15T10:02:42.9297881Z             },
2026-06-15T10:02:42.9297977Z             {
2026-06-15T10:02:42.9298095Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T10:02:42.9298177Z               "line": 673
2026-06-15T10:02:42.9298277Z             },
2026-06-15T10:02:42.9298352Z             {
2026-06-15T10:02:42.9298477Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-15T10:02:42.9298567Z               "line": 696
2026-06-15T10:02:42.9298753Z             },
2026-06-15T10:02:42.9298845Z             {
2026-06-15T10:02:42.9299034Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9299225Z               "line": 513
2026-06-15T10:02:42.9299344Z             },
2026-06-15T10:02:42.9299441Z             {
2026-06-15T10:02:42.9299563Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9299659Z               "line": 638
2026-06-15T10:02:42.9299746Z             },
2026-06-15T10:02:42.9299827Z             {
2026-06-15T10:02:42.9299954Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9300034Z               "line": 675
2026-06-15T10:02:42.9300125Z             },
2026-06-15T10:02:42.9300205Z             {
2026-06-15T10:02:42.9303041Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9303169Z               "line": 894
2026-06-15T10:02:42.9303264Z             },
2026-06-15T10:02:42.9303360Z             {
2026-06-15T10:02:42.9303488Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9303594Z               "line": 916
2026-06-15T10:02:42.9303675Z             },
2026-06-15T10:02:42.9303765Z             {
2026-06-15T10:02:42.9303884Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9303966Z               "line": 933
2026-06-15T10:02:42.9304056Z             },
2026-06-15T10:02:42.9304137Z             {
2026-06-15T10:02:42.9304262Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9304361Z               "line": 948
2026-06-15T10:02:42.9304442Z             },
2026-06-15T10:02:42.9304538Z             {
2026-06-15T10:02:42.9304652Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9304747Z               "line": 974
2026-06-15T10:02:42.9304824Z             },
2026-06-15T10:02:42.9304915Z             {
2026-06-15T10:02:42.9305038Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-15T10:02:42.9305123Z               "line": 457
2026-06-15T10:02:42.9305218Z             },
2026-06-15T10:02:42.9305303Z             {
2026-06-15T10:02:42.9305439Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-15T10:02:42.9305531Z               "line": 338
2026-06-15T10:02:42.9305622Z             },
2026-06-15T10:02:42.9305712Z             {
2026-06-15T10:02:42.9305821Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9305922Z               "line": 8792
2026-06-15T10:02:42.9306012Z             },
2026-06-15T10:02:42.9306102Z             {
2026-06-15T10:02:42.9306218Z               "path": "crates/xtask/src/main.rs",
2026-06-15T10:02:42.9306313Z               "line": 1260
2026-06-15T10:02:42.9306398Z             },
2026-06-15T10:02:42.9306480Z             {
2026-06-15T10:02:42.9306608Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-15T10:02:42.9306698Z               "line": 130
2026-06-15T10:02:42.9306785Z             }
2026-06-15T10:02:42.9306871Z           ]
2026-06-15T10:02:42.9306961Z         }
2026-06-15T10:02:42.9307051Z       }
2026-06-15T10:02:42.9307138Z     },
2026-06-15T10:02:42.9307219Z     {
2026-06-15T10:02:42.9307314Z       "id": "REQ-UPD-7",
2026-06-15T10:02:42.9309614Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-15T10:02:42.9309715Z       "requiredStages": [
2026-06-15T10:02:42.9309794Z         "impl",
2026-06-15T10:02:42.9309875Z         "unit"
2026-06-15T10:02:42.9310109Z       ],
2026-06-15T10:02:42.9310205Z       "stages": {
2026-06-15T10:02:42.9310297Z         "doc": {
2026-06-15T10:02:42.9310382Z           "complete": false,
2026-06-15T10:02:42.9310589Z           "evidence": []
2026-06-15T10:02:42.9310671Z         },
2026-06-15T10:02:42.9310765Z         "impl": {
2026-06-15T10:02:42.9310859Z           "complete": true,
2026-06-15T10:02:42.9310945Z           "evidence": [
2026-06-15T10:02:42.9311036Z             {
2026-06-15T10:02:42.9311141Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9311236Z               "line": 2282
2026-06-15T10:02:42.9311318Z             }
2026-06-15T10:02:42.9311413Z           ]
2026-06-15T10:02:42.9311498Z         },
2026-06-15T10:02:42.9311585Z         "int": {
2026-06-15T10:02:42.9311684Z           "complete": false,
2026-06-15T10:02:42.9311779Z           "evidence": []
2026-06-15T10:02:42.9311875Z         },
2026-06-15T10:02:42.9311952Z         "unit": {
2026-06-15T10:02:42.9312051Z           "complete": true,
2026-06-15T10:02:42.9312142Z           "evidence": [
2026-06-15T10:02:42.9312228Z             {
2026-06-15T10:02:42.9312338Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9312433Z               "line": 8768
2026-06-15T10:02:42.9312529Z             }
2026-06-15T10:02:42.9312610Z           ]
2026-06-15T10:02:42.9312699Z         }
2026-06-15T10:02:42.9312781Z       }
2026-06-15T10:02:42.9312873Z     },
2026-06-15T10:02:42.9312958Z     {
2026-06-15T10:02:42.9313053Z       "id": "REQ-UPD-8",
2026-06-15T10:02:42.9315527Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-15T10:02:42.9315644Z       "requiredStages": [
2026-06-15T10:02:42.9315735Z         "impl",
2026-06-15T10:02:42.9315816Z         "unit"
2026-06-15T10:02:42.9315900Z       ],
2026-06-15T10:02:42.9315995Z       "stages": {
2026-06-15T10:02:42.9316086Z         "doc": {
2026-06-15T10:02:42.9316168Z           "complete": false,
2026-06-15T10:02:42.9316276Z           "evidence": []
2026-06-15T10:02:42.9316357Z         },
2026-06-15T10:02:42.9316449Z         "impl": {
2026-06-15T10:02:42.9316539Z           "complete": true,
2026-06-15T10:02:42.9316629Z           "evidence": [
2026-06-15T10:02:42.9316716Z             {
2026-06-15T10:02:42.9316854Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T10:02:42.9316953Z               "line": 77
2026-06-15T10:02:42.9317036Z             },
2026-06-15T10:02:42.9317131Z             {
2026-06-15T10:02:42.9317254Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9317350Z               "line": 49
2026-06-15T10:02:42.9317431Z             },
2026-06-15T10:02:42.9317521Z             {
2026-06-15T10:02:42.9317640Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9317722Z               "line": 152
2026-06-15T10:02:42.9317803Z             },
2026-06-15T10:02:42.9317884Z             {
2026-06-15T10:02:42.9318004Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9318089Z               "line": 215
2026-06-15T10:02:42.9318174Z             },
2026-06-15T10:02:42.9318261Z             {
2026-06-15T10:02:42.9318381Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9318474Z               "line": 230
2026-06-15T10:02:42.9318636Z             },
2026-06-15T10:02:42.9318735Z             {
2026-06-15T10:02:42.9318857Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9319087Z               "line": 247
2026-06-15T10:02:42.9319181Z             },
2026-06-15T10:02:42.9319278Z             {
2026-06-15T10:02:42.9319412Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9319501Z               "line": 269
2026-06-15T10:02:42.9319593Z             },
2026-06-15T10:02:42.9319669Z             {
2026-06-15T10:02:42.9319792Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9319887Z               "line": 66
2026-06-15T10:02:42.9319965Z             },
2026-06-15T10:02:42.9320049Z             {
2026-06-15T10:02:42.9320164Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-15T10:02:42.9320260Z               "line": 154
2026-06-15T10:02:42.9320341Z             },
2026-06-15T10:02:42.9320417Z             {
2026-06-15T10:02:42.9320537Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9320618Z               "line": 2156
2026-06-15T10:02:42.9320702Z             },
2026-06-15T10:02:42.9320784Z             {
2026-06-15T10:02:42.9320885Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9320980Z               "line": 2229
2026-06-15T10:02:42.9321064Z             },
2026-06-15T10:02:42.9321149Z             {
2026-06-15T10:02:42.9321250Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9321348Z               "line": 2239
2026-06-15T10:02:42.9321429Z             },
2026-06-15T10:02:42.9321510Z             {
2026-06-15T10:02:42.9321616Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9321696Z               "line": 2246
2026-06-15T10:02:42.9321786Z             },
2026-06-15T10:02:42.9321859Z             {
2026-06-15T10:02:42.9321964Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9322053Z               "line": 2283
2026-06-15T10:02:42.9322140Z             },
2026-06-15T10:02:42.9322235Z             {
2026-06-15T10:02:42.9322344Z               "path": "crates/xtask/src/main.rs",
2026-06-15T10:02:42.9322445Z               "line": 480
2026-06-15T10:02:42.9322522Z             },
2026-06-15T10:02:42.9322611Z             {
2026-06-15T10:02:42.9322712Z               "path": "crates/xtask/src/main.rs",
2026-06-15T10:02:42.9322798Z               "line": 494
2026-06-15T10:02:42.9322879Z             }
2026-06-15T10:02:42.9322955Z           ]
2026-06-15T10:02:42.9323041Z         },
2026-06-15T10:02:42.9323123Z         "int": {
2026-06-15T10:02:42.9323226Z           "complete": false,
2026-06-15T10:02:42.9323322Z           "evidence": []
2026-06-15T10:02:42.9323409Z         },
2026-06-15T10:02:42.9323490Z         "unit": {
2026-06-15T10:02:42.9323593Z           "complete": true,
2026-06-15T10:02:42.9323699Z           "evidence": [
2026-06-15T10:02:42.9323772Z             {
2026-06-15T10:02:42.9323907Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-15T10:02:42.9324002Z               "line": 476
2026-06-15T10:02:42.9324089Z             },
2026-06-15T10:02:42.9324176Z             {
2026-06-15T10:02:42.9324298Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-15T10:02:42.9324394Z               "line": 580
2026-06-15T10:02:42.9324480Z             },
2026-06-15T10:02:42.9324570Z             {
2026-06-15T10:02:42.9324670Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9324766Z               "line": 8770
2026-06-15T10:02:42.9324857Z             },
2026-06-15T10:02:42.9324937Z             {
2026-06-15T10:02:42.9325038Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9325133Z               "line": 8792
2026-06-15T10:02:42.9325209Z             }
2026-06-15T10:02:42.9325299Z           ]
2026-06-15T10:02:42.9325382Z         }
2026-06-15T10:02:42.9325457Z       }
2026-06-15T10:02:42.9325548Z     },
2026-06-15T10:02:42.9325634Z     {
2026-06-15T10:02:42.9325730Z       "id": "REQ-WHOAMI-1",
2026-06-15T10:02:42.9327475Z       "title": "`spt whoami` is a thin ALIAS for `spt endpoint list` (full output: the SELF pin + the subnet roster) — the standalone bare-id command is dropped (the `id=$(spt whoami)` capture was never a real pattern: env vars don't persist between agent tool calls). The one new render: the `endpoint list` SELF pin carries the Self endpoint's authored `endpoint description` (info::read_info(...).resources) when present, inline after the liveness state. whoami stays a top-level hot-path verb (parse unchanged, REQ-MSG-9).",
2026-06-15T10:02:42.9327676Z       "requiredStages": [
2026-06-15T10:02:42.9327752Z         "doc",
2026-06-15T10:02:42.9327852Z         "impl",
2026-06-15T10:02:42.9327944Z         "unit"
2026-06-15T10:02:42.9328019Z       ],
2026-06-15T10:02:42.9328105Z       "stages": {
2026-06-15T10:02:42.9328186Z         "doc": {
2026-06-15T10:02:42.9328282Z           "complete": true,
2026-06-15T10:02:42.9328377Z           "evidence": [
2026-06-15T10:02:42.9328472Z             {
2026-06-15T10:02:42.9328569Z               "path": "CONTEXT.md",
2026-06-15T10:02:42.9328658Z               "line": 649
2026-06-15T10:02:42.9328739Z             }
2026-06-15T10:02:42.9328821Z           ]
2026-06-15T10:02:42.9328902Z         },
2026-06-15T10:02:42.9329072Z         "impl": {
2026-06-15T10:02:42.9329167Z           "complete": true,
2026-06-15T10:02:42.9329276Z           "evidence": [
2026-06-15T10:02:42.9329370Z             {
2026-06-15T10:02:42.9329484Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9329576Z               "line": 2766
2026-06-15T10:02:42.9329661Z             },
2026-06-15T10:02:42.9329741Z             {
2026-06-15T10:02:42.9329852Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9329937Z               "line": 2778
2026-06-15T10:02:42.9330018Z             }
2026-06-15T10:02:42.9330099Z           ]
2026-06-15T10:02:42.9330181Z         },
2026-06-15T10:02:42.9330266Z         "int": {
2026-06-15T10:02:42.9330366Z           "complete": false,
2026-06-15T10:02:42.9330462Z           "evidence": []
2026-06-15T10:02:42.9330544Z         },
2026-06-15T10:02:42.9330624Z         "unit": {
2026-06-15T10:02:42.9330724Z           "complete": true,
2026-06-15T10:02:42.9330806Z           "evidence": [
2026-06-15T10:02:42.9330896Z             {
2026-06-15T10:02:42.9331000Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9331097Z               "line": 6347
2026-06-15T10:02:42.9331183Z             },
2026-06-15T10:02:42.9331262Z             {
2026-06-15T10:02:42.9331373Z               "path": "crates/spt/src/cli.rs",
2026-06-15T10:02:42.9331464Z               "line": 6363
2026-06-15T10:02:42.9331559Z             }
2026-06-15T10:02:42.9331648Z           ]
2026-06-15T10:02:42.9331744Z         }
2026-06-15T10:02:42.9331834Z       }
2026-06-15T10:02:42.9331908Z     }
2026-06-15T10:02:42.9331989Z   ],
2026-06-15T10:02:42.9332066Z   "findings": []
2026-06-15T10:02:42.9332171Z }
